cJSON结构体构建

一:cJSON的构建。

 int create_objects()
{
cJSON *root, *fmt, *img, *thm, *fld;
char *out;
int i; /* The index number. */
int ret = ; /* Here we construct several JSON objects. */ // ------------------构建第1个----------------------
/* The "Video" data type: */
root = cJSON_CreateObject();
cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble"));
cJSON_AddItemToObject(root, "format", fmt = cJSON_CreateObject());
cJSON_AddStringToObject(fmt, "type", "rect");
cJSON_AddNumberToObject(fmt, "width", );
cJSON_AddNumberToObject(fmt, "height", );
cJSON_AddFalseToObject (fmt, "interlace");
cJSON_AddNumberToObject(fmt, "frame rate", ); out = cJSON_Print(root); /* Print to text */
cJSON_Delete(root); /* Delete the cJSON object */
LOG_I(cjson_example, "%s\n", out); /* Print out the text */
cJSON_free(out); /* Release the string. */ // ------------------构建第2个----------------------
/* The "days of the week" array: */
const char *strings[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
root = cJSON_CreateStringArray(strings, ); out = cJSON_Print(root);
cJSON_Delete(root);
LOG_I(cjson_example, "%s\n", out);
cJSON_free(out); // ------------------构建第3个----------------------
/* The matrix: */
int numbers[][] = {{, -, }, {, , }, {, , }};
root = cJSON_CreateArray();
for (i = ; i < ; i++) {
cJSON_AddItemToArray(root, cJSON_CreateIntArray(numbers[i], ));
} /* cJSON_ReplaceItemInArray(root,1,cJSON_CreateString("Replacement")); */
out = cJSON_Print(root);
cJSON_Delete(root);
LOG_I(cjson_example, "%s\n", out);
cJSON_free(out); // ------------------构建第4个----------------------
/* The "gallery" item: */
int ids[] = {, , , };
root = cJSON_CreateObject();
cJSON_AddItemToObject(root, "Image", img = cJSON_CreateObject());
cJSON_AddNumberToObject(img, "Width", );
cJSON_AddNumberToObject(img, "Height", );
cJSON_AddStringToObject(img, "Title", "View from 15th Floor");
cJSON_AddItemToObject(img, "Thumbnail", thm = cJSON_CreateObject());
cJSON_AddStringToObject(thm, "Url", "http:/*www.example.com/image/481989943");
cJSON_AddNumberToObject(thm, "Height", );
cJSON_AddStringToObject(thm, "Width", "");
cJSON_AddItemToObject(img, "IDs", cJSON_CreateIntArray(ids, )); out = cJSON_Print(root);
cJSON_Delete(root);
LOG_I(cjson_example, "%s\n", out);
cJSON_free(out); // ------------------构建第5个----------------------
/* The array of "records": */
struct record fields[] = {
{"zip", 37.7668, -1.223959e+2, "", "SAN FRANCISCO", "CA", "", "US"},
{"zip", 37.371991, -1.22026e+2, "", "SUNNYVALE", "CA", "", "US"}
}; root = cJSON_CreateArray();
for (i = ; i < ; i++) {
cJSON_AddItemToArray(root, fld = cJSON_CreateObject());
cJSON_AddStringToObject(fld, "precision", fields[i].precision);
cJSON_AddNumberToObject(fld, "Latitude", fields[i].lat);
cJSON_AddNumberToObject(fld, "Longitude", fields[i].lon);
cJSON_AddStringToObject(fld, "Address", fields[i].address);
cJSON_AddStringToObject(fld, "City", fields[i].city);
cJSON_AddStringToObject(fld, "State", fields[i].state);
cJSON_AddStringToObject(fld, "Zip", fields[i].zip);
cJSON_AddStringToObject(fld, "Country", fields[i].country);
} /* cJSON_ReplaceItemInObject(cJSON_GetArrayItem(root,1),"City",cJSON_CreateIntArray(ids,4)); */
out = cJSON_Print(root);
cJSON_Delete(root);
LOG_I(cjson_example, "%s\n", out);
cJSON_free(out);
return ret;
}

二:打印如下

 {

     "name":    "Jack (\"Bee\") Nimble",

     "format":    {

         "type":    "rect",

         "width":    ,

         "height":    ,

         "interlace":    false,

         "frame rate":    

     }

 }

 ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]

 [[, -, ], [, , ], [, , ]]

 {

     "Image":    {

         "Width":    ,

         "Height":    ,

         "Title":    "View from 15th Floor",

         "Thumbnail":    {

             "Url":    "http:/*www.example.com/image/481989943",

             "Height":    ,

             "Width":    ""

         },

         "IDs":    [, , , ]

     }

 }

 [{

         "precision":    "zip",

         "Latitude":    37.7668,

         "Longitude":    -122.3958999999999,

         "Address":    "",

         "City":    "SAN FRANCISCO",

         "State":    "CA",

         "Zip":    "",

         "Country":    "US"

     }, {

         "precision":    "zip",

         "Latitude":    37.371991,

         "Longitude":    -122.02
。。。

cJSON结构体构建的更多相关文章

  1. 『Python CoolBook』C扩展库_其四_结构体操作与Capsule

    点击进入项目 一.Python生成C语言结构体 C语言中的结构体传给Python时会被封装为胶囊(Capsule), 我们想要一个如下结构体进行运算,则需要Python传入x.y两个浮点数, type ...

  2. gorm 结构体 预加载

    结构体构建 type PlansApproval struct {     ID uint     Plans_Id int //plans编号     UpdateUser int //更新者    ...

  3. swift 的枚举、结构体、类

    一.Swift的枚举 枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值.Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型, ...

  4. Swift3.0P1 语法指南——类和结构体

    原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...

  5. 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承

    1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左 ...

  6. swift学习笔记之-类和结构体

    //类和结构体 import UIKit //类和结构体 /* 1.枚举enum.结构体struct和String.Array.Dictionary类型,都属于值传递类型,被赋值给新的常量或变量时传递 ...

  7. swift中的结构体和枚举

    Swift 里的结构体非常特殊. 类是面向对象编程语言中传统的结构单元.和结构体相比,Swift 的类支持实现继承,(受限的)反射,析构函数和多所有者. 既然类比结构体强大这么多,为什么还要使用结构体 ...

  8. swift选择类或结构体

    按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体: 结构体的主要目的是用来封装少量相关简单数据值. 有理由预计一个结构体实例在赋值或传递时,封装的数据将会被拷贝而不是被引用. ? 任何在结 ...

  9. 内核中用于数据接收的结构体struct msghdr(转)

    内核中用于数据接收的结构体struct msghdr(转) 我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,pin ...

随机推荐

  1. 解决win下无法ping通VM虚拟机CentOS系统的方法

    事情描述:公司迁新址,电脑带过去之后,用xshell连接vm的centos系统老是连接失败,然后考虑到公司迁新址这个情况,我首先怀疑是ip的问题,然后在vm中执行ifconfig找到centos的ip ...

  2. python--logging库学习_第一波

    简单使用 #!/usr/local/bin/python # -*- coding:utf-8 -*- import logging logging.debug('debug message') lo ...

  3. Cassandra Wiki Login JmxSecurity

    JmxSecurity 监控和管理Cassandra

  4. 按键精灵saystring无法使用的几种解决方案

    1.当输入密码无法使用“SayString”.“Ctrl+V”时,改用“KeyPress”的方法 戏谷游戏的登录画面,“密码输入” 是会挡按键精灵的“SayString”这指令,还有“Ctrl+V”贴 ...

  5. 浅谈PHP面向对象编程(六、自动加载及魔术方法)

    6.0 自动加载及魔术方法  6.1 自动加载 在PHP开发过程中,如果希望从外部引入一个class.通常会使用incluae和requre方法把定义这个class的文件包含进来.但是,在大型的开发项 ...

  6. Oracle回收站使用全攻略

    摘要:回收站(Recycle Bin)从原理上来说就是一个数据字典表,放置用户删除(drop)掉的数据库对象信息.用户进行删除操作的对象并没有被数据库删除,仍然会占用空间.除非是由于用户手工进行Pur ...

  7. Entity Framework使用汇总

    EF的发展历程 还是先来说一下EF从诞生到现在这几年的发展历程吧.在EF最初的版本中,作为一个ORM组件其通过EDM文件(里面是一些xml)来配置数据库与实体类之间的映射,实现数据进出数据库的控制.最 ...

  8. 跨境B2B电商

    主要处理问题:解决整个支付和流通环节,各国双方的供应商和销售商只关注下单支付后就可以拿到货物,中间环节由平台处理,支付和流通环节消费越少速度越快服务越好. 主体业务 1.合同处理. 2.货币支付,互换 ...

  9. 用js如何获取一个上传文件的扩展名

    function suffix(file_name){     var result =/\.[^\.]+/.exec(file_name);     return result; }

  10. 22_java之File对象

    01IO技术概述 * A:IO技术概述 * a: Output * 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 * b: Input * 把持久设备上的数据读取到内存中的这 ...