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结构体构建相关推荐

  1. cjson构建_cJSON对象的构建

    # cJSON对象的构建 ## 开始阅读源代码 **上面的文章中我们我们抓住了一条线,通过一个测试函数的实现来了解整个项目中的部分功能,当然,这不会覆盖所有的源代码,但我们会有一个清晰的思路来一步一步 ...

  2. java结构体构建学生 学号_易错题: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。...

    根据网考网考试中心的统计分析,以下试题在2015-12-7日计算机二级考试C语言习题练习中,答错率较高,为:93% [填空题] 程序通过定义学生结构体变量,存储了学生的学号.姓名和3门课的成绩.所有学 ...

  3. java结构体构建学生 学号_(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩; 急求...

    展开全部 之前写过一个记录学生学号,年龄,体重e5a48de588b63231313335323631343130323136353331333365636132,名字的数组结构,你可以稍作修改就可以 ...

  4. matlab结构体构建,matlab 怎么建立结构体数组?

    初识 Html5 1.1认识HTML5 HTML5并不仅仅只是做为HTML标记语言的一个最新版本,更重要的是它制定了Web应用开发的一系列标准,成为第一个将Web做为应用开发平台的HTML语言. HT ...

  5. Java后端递归构建树形结构

    记录:在Java后台利用递归思路进行构建树形结构数据,返回给前端,能以下拉菜单等形式进行展示. 简明:为了简化代码,引入Lombok的Jar包,可省略实体类set().get()方法. <dep ...

  6. java构建树形结构

    目录 前言 实现树形结构 一.树节点数据类(反回参数类) 二.给树形结构添加数据 三.测试类 四.测试结果 前言 在我们实际开发中会接触到树形结构,根节点子节点, 然后添加数据构成了我们的树形结构, ...

  7. 内核中用于数据接收的结构体struct msghdr

    我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1.我们使用系统调用send ...

  8. c++ 数组 结构体

    接下来的一点时间我将会记录下我看的c++的一些心得体会,人贵在坚持,希望我可以一直坚持下去!!Go Fighting! 一.c++复合数据类型: 数组类型的一些注意事项: sizeof的用法: 当用在 ...

  9. 内核中用于数据接收的结构体struct msghdr以及iovec介绍

    我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1.我们使用系统调用send ...

  10. 解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)

    方法一:将结构体对应字段类型设为指针类型,一劳永逸,不用担心json序列化与反序列化问题 // User 用户结构体(对应mysql表) type User struct {Id int `db:&q ...

最新文章

  1. 10万现金+高薪offer!新网银行智能语音大赛火热进行中
  2. linux 批量重命名文件
  3. 作业——Windows核心编程学习手札系列之五
  4. 体验使用node.js创建vue+Element-UI项目
  5. exchange online 连接筛选器 添加/删除 IP
  6. 【数据结构与算法】之深入解析“有效的括号”的求解思路与算法示例
  7. UNITY3D与iOS交互解决方案
  8. [GAN学习系列2] GAN的起源
  9. python 人脸关键点检测_opencv+python+dlib人脸关键点检测、实时检测
  10. java 去掉大量if else_Java中大量if...else语句的消除替代方案
  11. 基于Discuz的原生态MVC框架Uxf
  12. bootstrap 固定最底部_防腐木立柱怎么固定
  13. linux部署was找不到8879端口,WAS8.0与IHS集群安装与配置指导手册
  14. tomcat下载以及各个版本(zip,tar.gz,32-bit Windows zip,64-bit Windows zip,32-bit/64-bit Windows Service Instal
  15. 求职面试过程中都需要注意哪些
  16. 数据仓库架构以及多维数据模型的设计
  17. Window10设置图标名、文件名的字体大小方法
  18. 抽象类和接口的相同点和不同点
  19. 经典网络-ResNet论文及实践
  20. P2P网络基础(学习笔记)

热门文章

  1. LOGO语言初学指南(一)下载LOGO
  2. 二手笔记本测试软件,想买二手笔记本?先学会这些检测方法才最大限度不被坑...
  3. 长微博生成器 php,【九零天下】长微博生成器的PHP代码部分
  4. 提升Windows xp系统运行速度的九大技巧
  5. tracert命令查询服务器位置,服务器管理中tracert命令常用原理和命令行详解
  6. 7z 7Zip 命令行压缩,解压缩文件
  7. OSPF开销值、协议优先级及计时器的修改
  8. 测试用rtmp直播源
  9. 五、鼎捷T100生产管理之报工
  10. win10系统QQ音乐安装包无法打开解决方法!