Skip to content

API Reference

Classes

Name Description
JSON
JSONLexer
JSONToken
JSONValue
JSONParser

Macros


NULL_CHAR_STRING

#define NULL_CHAR_STRING "\0"

JSON_TOKEN_OPEN_CURLY_BRACE_STRING

#define JSON_TOKEN_OPEN_CURLY_BRACE_STRING "{"

JSON_TOKEN_CLOSE_CURLY_BRACE_STRING

#define JSON_TOKEN_CLOSE_CURLY_BRACE_STRING "}"

JSON_TOKEN_OPEN_BRACKET_STRING

#define JSON_TOKEN_OPEN_BRACKET_STRING "["

JSON_TOKEN_CLOSE_BRACKET_STRING

#define JSON_TOKEN_CLOSE_BRACKET_STRING "]"

JSON_TOKEN_COLON_STRING

#define JSON_TOKEN_COLON_STRING ":"

JSON_TOKEN_COMMA_STRING

#define JSON_TOKEN_COMMA_STRING ","

Enumerations


JSONValueType

enum JSONValueType

The JSONValueType enum that stores the types for JSON values.

Value Description
JSONOBJ_t Object. ex {}.
JSONNUMBER_INT_t Integer Number. ex 1.
JSONNUMBER_DOUBLE_t Double Number. ex 1.1.
JSONSTRING_t String. ex "hello".
JSONBOOL_t Boolean. ex true.
JSONNULL_t Null. ex null.
JSONLIST_t List. ex [].

JSONTokenType

enum JSONTokenType
Value Description
JSONTokenEOF
JSONTokenColon
JSONTokenOpenCurlyBrace
JSONTokenCloseCurlyBrace
JSONTokenOpenBracket
JSONTokenCloseBracket
JSONTokenComma
JSONTokenString
JSONTokenNumber
JSONTokenBool
JSONTokenNULL
JSONTokenIllegal

Functions


JSONValueBlankInit

JSONValue * JSONValueBlankInit()

JSONValueInit

JSONValue * JSONValueInit(enum JSONValueType value_type, void * value)

JSONValueToString

char * JSONValueToString(void * value)

JSONValueFree

void JSONValueFree(void * value)

JSONValuePrint

void JSONValuePrint(void * value)

JSONValueDuplicate

void * JSONValueDuplicate(void * value)

JSONInit

JSON * JSONInit()

JSONFree

void JSONFree(JSON * json)

JSONPrint

void JSONPrint(JSON * json)

JSONGetRoot

JSONValue * JSONGetRoot(JSON * json)

StringToJSON

JSON * StringToJSON(char *)

JSONFromFile

JSON * JSONFromFile(char *)

JSONToString

char * JSONToString(JSON *)

TestJSON

void TestJSON()

JSONLexerInit

JSONLexer * JSONLexerInit(char *)

FreeJSONLexer

void FreeJSONLexer(JSONLexer *)

JSONLex

JSONToken * JSONLex(JSONLexer *)

PrintJSONToken

void PrintJSONToken(JSONToken *, bool)

FreeJSONToken

void FreeJSONToken(JSONToken *)

IsJSONTokenValueType

bool IsJSONTokenValueType(JSONToken *, bool)

JSONLexerDebugTest

void JSONLexerDebugTest(char *, bool)

NewJSONToken

JSONToken * NewJSONToken(enum JSONTokenType, u_int32_t, u_int32_t, u_int32_t, char *)

JSONParserInit

JSONParser * JSONParserInit(JSONLexer *)

PrintJSONParserError

void PrintJSONParserError(JSONParser *)

FreeJSONParser

void FreeJSONParser(JSONParser *)

PrintJSONParserErrorLine

void PrintJSONParserErrorLine(JSONParser *)

FreeJSONValue

void FreeJSONValue(JSONValue *, bool)

ParseJSON

JSON * ParseJSON(JSONParser *)

Variables


ItemValueJSONValueOperations

ItemValueOperations ItemValueJSONValueOperations

JSON

struct JSON

Public Attributes

Return Name Description
Item * root

root

Item * root

JSONLexer

struct JSONLexer

Public Attributes

Return Name Description
char * input
u_int32_t input_len
char current_char
u_int32_t position
u_int32_t read_position
u_int32_t line

input

char * input

input_len

u_int32_t input_len

current_char

char current_char

position

u_int32_t position

read_position

u_int32_t read_position

line

u_int32_t line

JSONToken

struct JSONToken

Public Attributes

Return Name Description
enum JSONTokenType type
u_int32_t start
u_int32_t end
u_int32_t line
char * literal

type

enum JSONTokenType type

start

u_int32_t start

end

u_int32_t end

line

u_int32_t line

literal

char * literal

JSONValue

struct JSONValue

Public Attributes

Return Name Description
enum JSONValueType value_type
union JSONValue::@372020044153077151131055174206216317330213243071 @101112273240373251367232114052174162075306057323

value_type

enum JSONValueType value_type

Type: enum JSONValueType


@101112273240373251367232114052174162075306057323

union JSONValue::@372020044153077151131055174206216317330213243071 @101112273240373251367232114052174162075306057323

[union].unnamed0

union [union].__unnamed0__

Public Attributes

Return Name Description
List * list
HashMap * obj
int64_t * num_int
double * num_double
char * str
bool * boolean

list

List * list

obj

HashMap * obj

num_int

int64_t * num_int

num_double

double * num_double

str

char * str

boolean

bool * boolean

JSONParser

struct JSONParser

Public Attributes

Return Name Description
JSONLexer * lexer
JSONToken * current_token
JSONToken * peek_token
bool input_error
bool memory_error
char * error_message
int64_t list_nested
int64_t obj_nested

lexer

JSONLexer * lexer

current_token

JSONToken * current_token

peek_token

JSONToken * peek_token

input_error

bool input_error

memory_error

bool memory_error

error_message

char * error_message

list_nested

int64_t list_nested

obj_nested

int64_t obj_nested

[union].unnamed0

union [union].__unnamed0__

Public Attributes

Return Name Description
List * list
HashMap * obj
int64_t * num_int
double * num_double
char * str
bool * boolean

list

List * list

obj

HashMap * obj

num_int

int64_t * num_int

num_double

double * num_double

str

char * str

boolean

bool * boolean