#include "../header.h"
#include "cJSON.h"
// {
// "name" : "jack",
// "age" : 20 ,
// "weight" : 55.5,
// "address":
// {
// "addr":"changsha",
// "old":2000
// }
// }
//想要传递的任何数据,格式做好。
// {
// "name" : "jack",
// "info" : "hello" ,
// "sign" : "all is well",
// "fuhao" : ">"
// "address":
// {
// "ip":"changsha",
// "port":10001
// }
// }
//1.单独测试
//2.联合测试
int main(int argc, char const *argv[])
{
//json链表节点指针
cJSON * json_pointer = NULL;
cJSON * json_addr = NULL;
cJSON * json_data = NULL;
//创建一个链表数据对象。
json_pointer = cJSON_CreateObject();
//添加字符串类型到节点当中
cJSON_AddStringToObject(json_pointer,"name","jack");
//添加整型数据
cJSON_AddNumberToObject(json_pointer,"age",20);
//添加体重
cJSON_AddNumberToObject(json_pointer,"weigth",55.5);
//创建一个新的节点对象 - 把数据添加进去 - 把这个节点对象添加到上面的节点对象当中去。
json_addr = cJSON_CreateObject();
//添加字符串-长沙
cJSON_AddStringToObject(json_addr,"addr","changsha");
//添加数值 - 历史
cJSON_AddNumberToObject(json_addr,"old",2000);
//把新的节点对象添加到上面的节点对象中去
cJSON_AddItemToObject(json_pointer,"address",json_addr);
//把所有的数据添加进cjson 链表中。
//打印所有数据-函数执行结果是一个字符串
char * str = cJSON_Print(json_pointer);
printf("要传递的数据是:%s\n",str);
// //传递
// send(cid,str,strlen(str));
//解析:
cJSON * json_res = NULL;
cJSON * json_name = NULL;
cJSON * json_age = NULL;
cJSON* json_weigth = NULL;
cJSON* json_address = NULL;
cJSON* json_addr1 = NULL;
cJSON * json_old = NULL;
//调用解析函数
json_res = cJSON_Parse(str);
json_name = cJSON_GetObjectItem(json_res,"name");
json_age = cJSON_GetObjectItem(json_res,"age");
json_weigth = cJSON_GetObjectItem(json_res,"weigth");
//解析嵌套对象
json_address = cJSON_GetObjectItem(json_res,"address");
json_addr1 = cJSON_GetObjectItem(json_address,"addr");
json_old = cJSON_GetObjectItem(json_address,"old");
//解析了所有的数据:姓名-年龄-体重-地址-历史时间
printf("姓名:%s\t年龄:%d\t体重:%.2f\n",json_name->valuestring,json_age->valueint,json_weigth->valuedouble);
printf("地址:%s\t历史:%d\n",json_addr1->valuestring,json_old->valueint);
return 0;
}
cJSON库函数
最新推荐文章于 2024-09-14 08:00:12 发布