1. JSON与char *之间的转换(cJSON.h)
char* to JSON:
cJSON* root = cJSON_Parse(const char*);
cJSON_AddNumberToObject(...);
cJSON_AddStringToObject(...);
...
JSON to char*
char *out, *out1;
out = cJSON_Print(root); //JSON格式的字符串
CJSON* val1 = cJSON_GetObjectItem(root, "字段名称1");
//如果val1是一个数组,可以通过以下函数获得数组元素
CJSON* val2 = cJSON_GetArrayItem(val1, i);
strcpy(out1, val2->valuestring);
2. JSON与struct之间的转换(s2j.h)
struct to JSON:
struct ... *源结构体指针;
s2j_create_json_obj(目标JSON*; //testJSON是cJSON*类型,无需其他定义
s2j_json_set_basic_element(目标JSON*, 源结构体指针, 元素类型, 元素名称);
s2j_json_set_array_element(...);
//设置struct的函数有六个参数
s2j_json_set_struct_element(子JSON*, 目标JSON*, 子结构体指针, 源结构体指针, 元素类型, 元素名称);
//设置子JSON*的元素信息
s2j_json_set_basic_element(...);
...
JSON to struct:
cJSON *pJSON = cJSON_Parse();
s2j_create_struct_obj(target_Struct, struct类型);
//与struct to json相同,只是将struct和cJSON变量位置互换
s2j_struct_get_basic_element(...);
s2j_struct_get_array_element(...);
s2j_struct_get_struct_element(...);
s2j_struct_get_basic_element(...);
...