当前位置:网站首页 > 技术博客 > 正文

c语言构造json数组对象实例



#include <stdio.h> #include "cJSON.h" int main() { //JSON本质上就是键值对,所以JSON在C语言中的表现形式就是键值对组成的字符串 //字符串需要加双引号,所有的键默认为字符串 //一共定义了7种类型,可以查看cJSON.h中的cJSON Types这一行了解 //以下为两种JSON字符串的常见形式 //普通JSON /*{ "json" : { "id":1, "nodeId":11, "deviceId":111, "deviceName":"aaa", "ieee":"01212", "ep":"1111", "type":"bbb" } } //加入了数组的JSON { "id":[1,2,3,4,5], "nodeId":11, "deviceId":111, "deviceName":"aaa" } */ char* json1 = "{ "json" : { "id":1, "nodeId":11, "deviceId":111, "deviceName":"aaa", "ieee":"01212", "ep":"1111", "type":"bbb" }}"; char* json2 = "{"id":[1,2,3,4,5], "nodeId":11, "deviceId":111, "deviceName":"aaa"}"; cJSON* root; cJSON* format; cJSON* array; int value_int; int array_len; int i = 0; char* value_string; //解析json1 //通过cJSON_Parse解析接收到的字符串,再通过cJSON_GetObjectItem获取指定键的值,最后释放该JSON结点的内存 root = cJSON_Parse(json1); format = cJSON_GetObjectItem(root, "json"); value_int = cJSON_GetObjectItem(format, "nodeId")->valueint; value_string = cJSON_GetObjectItem(format, "ieee")->valuestring; printf("%d ", value_int); printf("%s ", value_string); cJSON_Delete(root); //解析json2 //添加了数组解析 root = cJSON_Parse(json2); //数组解析 array = cJSON_GetObjectItem(root, "id");//获取数组的根节点 value_int = cJSON_GetArraySize(array);//获取数组长度 printf("数组长度为:%d ", value_int); //循环打印数组的内容 for (i = 0; i < value_int; i++) { value_int = cJSON_GetArrayItem(array, i)->valueint;//获取数组下标为i的数据,以int形式解析 printf("第%d个元素为:%d ",i+1,value_int); } value_string = cJSON_GetObjectItem(root, "deviceName")->valuestring; printf("%s ", value_string); cJSON_Delete(root); return 0; }

版权声明


相关文章:

  • http请求头有哪些字段2025-08-21 13:30:01
  • flex布局视频教程2025-08-21 13:30:01
  • c引用类型主要有四种2025-08-21 13:30:01
  • 路由交换技术有哪些2025-08-21 13:30:01
  • u盘的写保护开关在哪2025-08-21 13:30:01
  • java编程入门资料2025-08-21 13:30:01
  • javascript项目2025-08-21 13:30:01
  • c程序文件加密解密2025-08-21 13:30:01
  • opengl入门2025-08-21 13:30:01
  • css3属性选择器有哪些2025-08-21 13:30:01