Types and Enums

jsmn_parse

parser

Direction Name Type Description
In pos UDINT Current parsing position within the JSON string
Internal toknext UDINT Keeps track of next token index
Internal toksuper UDINT Keeps track of the token associated with the parent JSON object
In callback jsmn_callback Callback data to be used (Optional)
Out isValue BOOL Boolean set when the value of a JSON object is parsed
In pcache UDINT Pointer to cache to be used (Optional)
Out endPos UDINT End parsing position within the JSON string
Internal cache STRING[] Size of JSMN_STRLEN_CACHE. Internal cache used for parsing if pcache is not specified.

parser.callback (jsmn_callback)

Name Type Description
pFunction UDINT Pointer to user defined callback function used to sort parsed data
pUserData UDINT Pointer to user defined data structure used to store parsed data

jsmn_callback_data

Name Variable Type Description
Name STRING Highest level variable name of currently parsed JSON Object
Type json_token_type_enum Token type (object, array, string, etc…), see json_token_type_enum for more info
Value STRING Parsed value of token as a string (“true”, “2”, etc…)
Levels USINT JSON hierarchy depth
Structure STRING ARRAY JSON hierarchy stored as an array
Size UDINT Size of current data structure. Currently 0 for primitive values and 1 for Members, Object, and Arrays
Advanced jsmn_callback_advanced_data Contains additional information not needed for most situations

jsmn_callback_advanced_data

Name Variable Type Description
pValue UDINT Pointer to start of value in original json string
ValueLen UDINT Length of value

Tokens

jsmntok_t

Name Variable Type Description
type json_token_type_enum Token type (object, array, string, etc…), see json_token_type_enum for more info
start INT Start position in JSON data string
end INT End position in JSON data string
size INT String length of token name
parent INT Token index of parent. For internal use
cached BOOL Token is contained in parser’s cache. For internal use

json_token

Warning

This type has not use as all use cases are Deprecated. Use jsmntok_t instead! May be revived in future library versions.

Modified type similar to jsmntok_t to be used with JsonParse and associated functions.

Name Variable Type Description
Type json_token_type_enum Token type (object, array, string, etc…), see json_token_type_enum for more info
Start INT Start position in JSON data string
End INT End position in JSON data string
Size INT String length of token name
parent INT Token index of parent ? For internal use
cached BOOL For internal use

json_token_type_enum

Value Enum Description
0 JSON_UNDEFINED Type of undefined
1 JSMN_OBJECT Type of Object
2 JSMN_ARRAY Type of Array
3 JSMN_STRING Type of String
4 JSMN_PRIMITIVE Type of Primitive (number, boolean, etc…)

Constants

Name Type Value Description
JSMN_MAX_TOKENS USINT 128 Max number of tokens supported by JsonParse, JsonTokenEqual, and JSONGetValue
JSMN_MAI_STRUCT_LEVEL USINT 15 Mai number of structures level displayed in jsmn_callback_data Structure[] member
JSMN_STRLEN_CALLBACK_DATA UINT 320 Max string length of information provided in jsmn_callback_data
JSMN_STRLEN_CACHE UINT 1000 Size of parser internal cache

Errors

Value Enum Description
-1 JSMN_ERROR_NO_MEM Not enough tokens were provided
-2 JSMN_ERROR_INVAL Invalid character inside JSON string
-3 JSMN_ERROR_PART The string is not a full JSON packet, more bytes expected