Microchip® Advanced Software Framework

aws_iot_json_utils.c File Reference
#include "aws_iot_json_utils.h"
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
#include <string.h>
#include "aws_iot_log.h"

Functions

int8_t jsoneq (const char *json, jsmntok_t *tok, const char *s)
 JSON Equality Check. More...
 
IoT_Error_t parseBooleanValue (bool *b, const char *jsonString, jsmntok_t *token)
 Parse a boolean value from a JSON node. More...
 
IoT_Error_t parseDoubleValue (double *d, const char *jsonString, jsmntok_t *token)
 Parse a double value from a JSON node. More...
 
IoT_Error_t parseFloatValue (float *f, const char *jsonString, jsmntok_t *token)
 Parse a float value from a JSON node. More...
 
IoT_Error_t parseInteger16Value (int16_t *i, const char *jsonString, jsmntok_t *token)
 Parse a signed 16-bit integer value from a JSON node. More...
 
IoT_Error_t parseInteger32Value (int32_t *i, const char *jsonString, jsmntok_t *token)
 Parse a signed 32-bit integer value from a JSON node. More...
 
IoT_Error_t parseInteger8Value (int8_t *i, const char *jsonString, jsmntok_t *token)
 Parse a signed 8-bit integer value from a JSON node. More...
 
IoT_Error_t parseStringValue (char *buf, const char *jsonString, jsmntok_t *token)
 Parse a string value from a JSON node. More...
 
IoT_Error_t parseUnsignedInteger16Value (uint16_t *i, const char *jsonString, jsmntok_t *token)
 Parse an unsigned 16-bit integer value from a JSON node. More...
 
IoT_Error_t parseUnsignedInteger32Value (uint32_t *i, const char *jsonString, jsmntok_t *token)
 Parse an unsigned 32-bit integer value from a JSON node. More...
 
IoT_Error_t parseUnsignedInteger8Value (uint8_t *i, const char *jsonString, jsmntok_t *token)
 Parse an unsigned 8-bit integer value from a JSON node. More...
 

int8_t jsoneq ( const char *  json,
jsmntok_t tok,
const char *  s 
)

JSON Equality Check.

Given a token pointing to a particular JSON node and an input string, check to see if the key is equal to the string.

Parameters
jsonjson string
tokjson token - pointer to key to test for equality
sinput string for key to test equality
Returns
0 if equal, 1 otherwise

References jsmntok_t::end, JSMN_STRING, jsmntok_t::start, and jsmntok_t::type.

Referenced by extractClientToken(), extractVersionNumber(), and isJsonKeyMatchingAndUpdateValue().

IoT_Error_t parseBooleanValue ( bool b,
const char *  jsonString,
jsmntok_t token 
)

Parse a boolean value from a JSON node.

Given a JSON node parse the boolean value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
baddress of boolean to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References JSMN_PRIMITIVE, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

Referenced by UpdateValueIfNoObject().

IoT_Error_t parseDoubleValue ( double *  d,
const char *  jsonString,
jsmntok_t token 
)

Parse a double value from a JSON node.

Given a JSON node parse the double value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
daddress of double to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References JSMN_PRIMITIVE, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

Referenced by UpdateValueIfNoObject().

IoT_Error_t parseFloatValue ( float *  f,
const char *  jsonString,
jsmntok_t token 
)

Parse a float value from a JSON node.

Given a JSON node parse the float value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
faddress of float to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References JSMN_PRIMITIVE, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

Referenced by UpdateValueIfNoObject().

IoT_Error_t parseInteger16Value ( int16_t *  i,
const char *  jsonString,
jsmntok_t token 
)

Parse a signed 16-bit integer value from a JSON node.

Given a JSON node parse the integer value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
iaddress of int16_t to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References JSMN_PRIMITIVE, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

Referenced by UpdateValueIfNoObject().

IoT_Error_t parseInteger32Value ( int32_t *  i,
const char *  jsonString,
jsmntok_t token 
)

Parse a signed 32-bit integer value from a JSON node.

Given a JSON node parse the integer value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
iaddress of int32_t to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References JSMN_PRIMITIVE, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

Referenced by UpdateValueIfNoObject().

IoT_Error_t parseInteger8Value ( int8_t *  i,
const char *  jsonString,
jsmntok_t token 
)

Parse a signed 8-bit integer value from a JSON node.

Given a JSON node parse the integer value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
iaddress of int8_t to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References JSMN_PRIMITIVE, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

Referenced by UpdateValueIfNoObject().

IoT_Error_t parseStringValue ( char *  buf,
const char *  jsonString,
jsmntok_t token 
)

Parse a string value from a JSON node.

Given a JSON node parse the string value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
saddress of string to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References jsmntok_t::end, JSMN_STRING, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

IoT_Error_t parseUnsignedInteger16Value ( uint16_t *  i,
const char *  jsonString,
jsmntok_t token 
)

Parse an unsigned 16-bit integer value from a JSON node.

Given a JSON node parse the integer value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
iaddress of uint16_t to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References JSMN_PRIMITIVE, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

Referenced by UpdateValueIfNoObject().

IoT_Error_t parseUnsignedInteger32Value ( uint32_t *  i,
const char *  jsonString,
jsmntok_t token 
)

Parse an unsigned 32-bit integer value from a JSON node.

Given a JSON node parse the integer value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
iaddress of uint32_t to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References JSMN_PRIMITIVE, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

Referenced by extractVersionNumber(), and UpdateValueIfNoObject().

IoT_Error_t parseUnsignedInteger8Value ( uint8_t *  i,
const char *  jsonString,
jsmntok_t token 
)

Parse an unsigned 8-bit integer value from a JSON node.

Given a JSON node parse the integer value from the value.

Parameters
jsonStringjson string
tokjson token - pointer to JSON node
iaddress of uint8_t to be updated
Returns
NONE_ERROR - success
JSON_PARSE_ERROR - error parsing value

References JSMN_PRIMITIVE, JSON_PARSE_ERROR, NONE_ERROR, jsmntok_t::start, jsmntok_t::type, and WARN.

Referenced by UpdateValueIfNoObject().