cJSON库使用教程

前端之家收集整理的这篇文章主要介绍了cJSON库使用教程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

转载自:http://blog.csdn.net/geqiandebei/article/details/47977103

CSJON库基本数据格式 cJSON 定义

  1. typedefstructcJSON{
  2. structcJSON*next,*prev;//数组对象数据中用到
  3. structcJSON*child;//数组和对象中指向子数组对象或值
  4. inttype;//元素的类型,如是对象还是数组
  5. char*valuestring;//如果是字符串
  6. intvalueint;//如果是数值
  7. doublevaluedouble;//如果类型是cJSON_Number
  8. char*string;//Theitem'snamestring,ifthisitemisthechildof,orisinthelistofsubitemsofanobject.
  9. }cJSON;
  10. @H_404_107@

    构造JSON:

    首先创建JSON主对象

    1. cJSON*root=cJSON_CreateObject();
    2. @H_404_107@

    类似的创建数组对象

    ?
    cJSON*array=cJSON_CreateArray(); @H_404_107@

向对象中增加(字符)节点

?
    cJSON_AddStringToObject(root,"名称","字符串"); @H_404_107@

向对象中增加对象(字符串、数组、数字)

?
    cJSON_AddItemToObject(root,cJSON_CreateString("邝东宇"));
  1. cJSON_AddItemToObject(root,"名称",cJSON_CreateNumber(100));
  2. @H_404_107@

向数组中增加元素(元素类型不一定相同)

?

    <spanstyle="white-space:pre"></span>cJSON_AddItemToArray(array,cJSON_CreateString("Linux"));
  1. cJSON_AddItemToArray(array,cJSON_CreateNumber(26));
  2. @H_404_107@

    解析JSON:

    首先获取字符串形式的JSON数据,例:存储于char data[1024];

    获取JSON对象

    ?

      cJSON*root=cJSON_Parse(data); @H_404_107@ 获取指定名称的节点指针, ?
        cJSON*tmp=cJSON_GetObjectItem(root,"name"); @H_404_107@ 解析数组,首先按上步获取数组指针 如 cJSON* array ?
          获取数组大小intsize=cJSON_GetArraySize(array)
        1. 获取数组元素cJSON*tmp=cJSON_GetArrayItem(array,1);//下标从0开始</span>
        2. @H_404_107@


          最后释放对象

          ?

            cJSON_Delete(root); @H_404_107@ 根据对象指针获取JSON字符串形式数据

            ?

              char*data=cJSON_Print(root); @H_404_107@


              附件cJSON库以及demo源码在本人CSDN资源中获取

              猜你在找的Json相关文章