cjson构建_cJSON结构体构建
cJSON结构体构建
一:cJSON的构建。
1 int create_objects()
2 {
3 cJSON *root, *fmt, *img, *thm, *fld;
4 char *out;
5 int i; /* The index number. */
6 int ret = 0;
7
8 /* Here we construct several JSON objects. */
9
10 // ------------------构建第1个----------------------
11 /* The "Video" data type: */
12 root = cJSON_CreateObject();
13 cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble"));
14 cJSON_AddItemToObject(root, "format", fmt = cJSON_CreateObject());
15 cJSON_AddStringToObject(fmt, "type", "rect");
16 cJSON_AddNumberToObject(fmt, "width", 1920);
17 cJSON_AddNumberToObject(fmt, "height", 1080);
18 cJSON_AddFalseToObject (fmt, "interlace");
19 cJSON_AddNumberToObject(fmt, "frame rate", 24);
20
21 out = cJSON_Print(root); /* Print to text */
22 cJSON_Delete(root); /* Delete the cJSON object */
23 LOG_I(cjson_example, "%s\n", out); /* Print out the text */
24 cJSON_free(out); /* Release the string. */
25
26 // ------------------构建第2个----------------------
27 /* The "days of the week" array: */
28 const char *strings[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
29 root = cJSON_CreateStringArray(strings, 7);
30
31 out = cJSON_Print(root);
32 cJSON_Delete(root);
33 LOG_I(cjson_example, "%s\n", out);
34 cJSON_free(out);
35
36 // ------------------构建第3个----------------------
37 /* The matrix: */
38 int numbers[3][3] = {{0, -1, 0}, {1, 0, 0}, {0, 0, 1}};
39 root = cJSON_CreateArray();
40 for (i = 0; i < 3; i++) {
41 cJSON_AddItemToArray(root, cJSON_CreateIntArray(numbers[i], 3));
42 }
43
44 /* cJSON_ReplaceItemInArray(root,1,cJSON_CreateString("Replacement")); */
45 out = cJSON_Print(root);
46 cJSON_Delete(root);
47 LOG_I(cjson_example, "%s\n", out);
48 cJSON_free(out);
49
50 // ------------------构建第4个----------------------
51 /* The "gallery" item: */
52 int ids[4] = {116, 943, 234, 38793};
53 root = cJSON_CreateObject();
54 cJSON_AddItemToObject(root, "Image", img = cJSON_CreateObject());
55 cJSON_AddNumberToObject(img, "Width", 800);
56 cJSON_AddNumberToObject(img, "Height", 600);
57 cJSON_AddStringToObject(img, "Title", "View from 15th Floor");
58 cJSON_AddItemToObject(img, "Thumbnail", thm = cJSON_CreateObject());
59 cJSON_AddStringToObject(thm, "Url", "http:/*www.example.com/image/481989943");
60 cJSON_AddNumberToObject(thm, "Height", 125);
61 cJSON_AddStringToObject(thm, "Width", "100");
62 cJSON_AddItemToObject(img, "IDs", cJSON_CreateIntArray(ids, 4));
63
64 out = cJSON_Print(root);
65 cJSON_Delete(root);
66 LOG_I(cjson_example, "%s\n", out);
67 cJSON_free(out);
68
69 // ------------------构建第5个----------------------
70 /* The array of "records": */
71 struct record fields[2] = {
72 {"zip", 37.7668, -1.223959e+2, "", "SAN FRANCISCO", "CA", "94107", "US"},
73 {"zip", 37.371991, -1.22026e+2, "", "SUNNYVALE", "CA", "94085", "US"}
74 };
75
76 root = cJSON_CreateArray();
77 for (i = 0; i < 2; i++) {
78 cJSON_AddItemToArray(root, fld = cJSON_CreateObject());
79 cJSON_AddStringToObject(fld, "precision", fields[i].precision);
80 cJSON_AddNumberToObject(fld, "Latitude", fields[i].lat);
81 cJSON_AddNumberToObject(fld, "Longitude", fields[i].lon);
82 cJSON_AddStringToObject(fld, "Address", fields[i].address);
83 cJSON_AddStringToObject(fld, "City", fields[i].city);
84 cJSON_AddStringToObject(fld, "State", fields[i].state);
85 cJSON_AddStringToObject(fld, "Zip", fields[i].zip);
86 cJSON_AddStringToObject(fld, "Country", fields[i].country);
87 }
88
89 /* cJSON_ReplaceItemInObject(cJSON_GetArrayItem(root,1),"City",cJSON_CreateIntArray(ids,4)); */
90 out = cJSON_Print(root);
91 cJSON_Delete(root);
92 LOG_I(cjson_example, "%s\n", out);
93 cJSON_free(out);
94 return ret;
95 }
二:打印如下
1 {
2
3 "name": "Jack (\"Bee\") Nimble",
4
5 "format": {
6
7 "type": "rect",
8
9 "width": 1920,
10
11 "height": 1080,
12
13 "interlace": false,
14
15 "frame rate": 24
16
17 }
18
19 }
20
21 ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
22
23 [[0, -1, 0], [1, 0, 0], [0, 0, 1]]
24
25 {
26
27 "Image": {
28
29 "Width": 800,
30
31 "Height": 600,
32
33 "Title": "View from 15th Floor",
34
35 "Thumbnail": {
36
37 "Url": "http:/*www.example.com/image/481989943",
38
39 "Height": 125,
40
41 "Width": "100"
42
43 },
44
45 "IDs": [116, 943, 234, 38793]
46
47 }
48
49 }
50
51 [{
52
53 "precision": "zip",
54
55 "Latitude": 37.7668,
56
57 "Longitude": -122.3958999999999,
58
59 "Address": "",
60
61 "City": "SAN FRANCISCO",
62
63 "State": "CA",
64
65 "Zip": "94107",
66
67 "Country": "US"
68
69 }, {
70
71 "precision": "zip",
72
73 "Latitude": 37.371991,
74
75 "Longitude": -122.02
76 。。。
标签:cJSON,root,out,AddStringToObject,fld,fields,AddNumberToObject
来源: https://www.cnblogs.com/LiuYanYGZ/p/10259733.html
cjson构建_cJSON结构体构建相关推荐
- cjson构建_cJSON对象的构建
# cJSON对象的构建 ## 开始阅读源代码 **上面的文章中我们我们抓住了一条线,通过一个测试函数的实现来了解整个项目中的部分功能,当然,这不会覆盖所有的源代码,但我们会有一个清晰的思路来一步一步 ...
- java结构体构建学生 学号_易错题: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。...
根据网考网考试中心的统计分析,以下试题在2015-12-7日计算机二级考试C语言习题练习中,答错率较高,为:93% [填空题] 程序通过定义学生结构体变量,存储了学生的学号.姓名和3门课的成绩.所有学 ...
- java结构体构建学生 学号_(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩; 急求...
展开全部 之前写过一个记录学生学号,年龄,体重e5a48de588b63231313335323631343130323136353331333365636132,名字的数组结构,你可以稍作修改就可以 ...
- matlab结构体构建,matlab 怎么建立结构体数组?
初识 Html5 1.1认识HTML5 HTML5并不仅仅只是做为HTML标记语言的一个最新版本,更重要的是它制定了Web应用开发的一系列标准,成为第一个将Web做为应用开发平台的HTML语言. HT ...
- Java后端递归构建树形结构
记录:在Java后台利用递归思路进行构建树形结构数据,返回给前端,能以下拉菜单等形式进行展示. 简明:为了简化代码,引入Lombok的Jar包,可省略实体类set().get()方法. <dep ...
- java构建树形结构
目录 前言 实现树形结构 一.树节点数据类(反回参数类) 二.给树形结构添加数据 三.测试类 四.测试结果 前言 在我们实际开发中会接触到树形结构,根节点子节点, 然后添加数据构成了我们的树形结构, ...
- 内核中用于数据接收的结构体struct msghdr
我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1.我们使用系统调用send ...
- c++ 数组 结构体
接下来的一点时间我将会记录下我看的c++的一些心得体会,人贵在坚持,希望我可以一直坚持下去!!Go Fighting! 一.c++复合数据类型: 数组类型的一些注意事项: sizeof的用法: 当用在 ...
- 内核中用于数据接收的结构体struct msghdr以及iovec介绍
我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1.我们使用系统调用send ...
- 解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)
方法一:将结构体对应字段类型设为指针类型,一劳永逸,不用担心json序列化与反序列化问题 // User 用户结构体(对应mysql表) type User struct {Id int `db:&q ...
最新文章
- 10万现金+高薪offer!新网银行智能语音大赛火热进行中
- linux 批量重命名文件
- 作业——Windows核心编程学习手札系列之五
- 体验使用node.js创建vue+Element-UI项目
- exchange online 连接筛选器 添加/删除 IP
- 【数据结构与算法】之深入解析“有效的括号”的求解思路与算法示例
- UNITY3D与iOS交互解决方案
- [GAN学习系列2] GAN的起源
- python 人脸关键点检测_opencv+python+dlib人脸关键点检测、实时检测
- java 去掉大量if else_Java中大量if...else语句的消除替代方案
- 基于Discuz的原生态MVC框架Uxf
- bootstrap 固定最底部_防腐木立柱怎么固定
- linux部署was找不到8879端口,WAS8.0与IHS集群安装与配置指导手册
- tomcat下载以及各个版本(zip,tar.gz,32-bit Windows zip,64-bit Windows zip,32-bit/64-bit Windows Service Instal
- 求职面试过程中都需要注意哪些
- 数据仓库架构以及多维数据模型的设计
- Window10设置图标名、文件名的字体大小方法
- 抽象类和接口的相同点和不同点
- 经典网络-ResNet论文及实践
- P2P网络基础(学习笔记)