9#include "json_parser.h"
24 uint16_t data_len = strlen(data);
25 json_string->
data = pvPortRealloc(json_string->
data, json_string->
len + data_len);
26 memmove(json_string->
data + json_string->
len, data, data_len);
27 json_string->
len+=data_len;
36 json_string->
data = pvPortRealloc(json_string->
data, json_string->
len + 1);
37 memmove(json_string->
data + json_string->
len,
"\0", 1);
59 itoa(val, val_str, 10);
66 json_parser_json_string_cat(json_string, key);
69 json_parser_json_string_cat(json_string, val_str);
73 json_parser_json_string_terminate(json_string);
96 json_parser_json_string_cat(json_string, key);
100 json_parser_json_string_cat(json_string, val);
105 json_parser_json_string_terminate(json_string);
128 json_parser_json_string_cat(json_string, key);
131 json_parser_json_string_cat(json_string, nested_json_string->
data);
135 json_parser_json_string_terminate(json_string);
156 if(json_object!=NULL){
157 json_parser_json_string_cat(json_string, json_object->
data);
162 json_parser_json_string_terminate(json_string);
181 itoa(val, val_str, 10);
187 json_parser_json_string_cat(json_string, val_str);
191 json_parser_json_string_terminate(json_string);
213 char *key_start = NULL;
214 char *key_end = NULL;
215 char *val_start = NULL;
216 char *val_end = NULL;
230 if(key_start != NULL && key_end != NULL && val_start !=NULL && val_end != NULL){
232 uint8_t key_len = key_end - key_start;
233 uint8_t val_len = val_end - val_start;
246 json_string = val_end + 1;
250 }
while(key_start != NULL && key_end != NULL && val_start !=NULL && val_end != NULL);
272 vPortFree(json_object->
params);
273 vPortFree(json_object);
284 json_string->
data = NULL;
285 json_string->
len = 0;
295 vPortFree(json_string->
data);
296 vPortFree(json_string);
void json_parser_free_json_string(json_parser_json_string_s *json_string)
Frees a json string instance.
#define JSON_STRING_ENTRY_DELIMITOR
void json_parser_json_string_put_str_pair(json_parser_json_string_s *json_string, char *key, char *val, uint8_t is_initial, uint8_t is_final)
Puts a JSON key/(string)value pair into a provided json string object;.
void json_parser_json_string_nest(json_parser_json_string_s *json_string, char *key, json_parser_json_string_s *nested_json_string, uint8_t is_initial, uint8_t is_final)
Nests a child JSON string into a parent JSON string.
#define JSON_STRING_PAIR_SEPARATOR
void json_parser_json_string_put_array_int(json_parser_json_string_s *json_string, uint16_t val, uint8_t is_initial, uint8_t is_final)
Nests a child JSON string into a parent JSON array.
void json_parser_json_string_put_array_object(json_parser_json_string_s *json_string, json_parser_json_string_s *json_object, uint8_t is_initial, uint8_t is_final)
Nests a child JSON string into a parent JSON array.
void json_parser_json_string_put_int_pair(json_parser_json_string_s *json_string, char *key, uint16_t val, uint8_t is_initial, uint8_t is_final)
Puts a JSON key/(integer)value pair into a provided json string object;.
#define JSON_ARRAY_DELIMITOR
void json_parser_free_json_object(json_parser_json_object_s *json_object)
Frees a parsed json object.
#define JSON_ARRAY_TERMINATOR
#define JSON_STRING_DELIMITOR
#define JSON_STRING_ENTRY_SEPARATOR
json_parser_json_string_s * json_parser_json_string_new(void)
Creates and initialises a new json string instance.
json_parser_json_object_s * json_parser_parse(char *json_string, uint16_t json_string_len)
Retrieves key/value pairs from a JSON encoded string.
#define JSON_STRING_TERMINATOR
JSON Objects structure object.
json_parser_json_param_s * params
JSON parameter structure object.
JSON String structure object.