zoukankan      html  css  js  c++  java
  • 【鸿蒙开发板试用】cJSON的使用

    目录:
    json的格式
    生成json字符串
    解析json字符串

    源码包含第三方的cJSON库,在目录//third_party/cJSON,默认已经编译进固件。我们可以使用它的api,轻松的生成、解析json字符串。下面用一个例子记录cJSON的使用方法。

    json的格式

    首先一个花括号{},整个代表一个对象,同时里面是一种Key-Value的存储形式,它还有不同的数据类型来区分。

    数据结构:Object、Array

    基本类型:string,number,true,false,null

    (1)Object

    {key:value,key:value...}

    key:string类型

    value:任何基本类型或数据结构

    (2)Array

    [value,value...]

    value:任何基本类型或数据结构。

    比如:{"name":"李广", "values":[1,2,45,"你好"] }

    生成json字符串

    1)生成字符串样例:

     {                                                            
            "id":   123,                                                            
            "dp":   {                                                               
                    "temperature":  [{                                              
                                    "v":    23.5                                    
                            }],                                                     
                    "humidity":     [{                                              
                                    "v":    60.3                                    
                            }]                                                      
            }                                                                       
    } 
    

    2)创建对象root,根据实际需要,从外到内一层一层添加所需的对象、数据、元素等;

        cJSON *root, *array1, *array2, *object1, *object2, *object3;
        root = cJSON_CreateObject();
        cJSON_AddItemToObject(root, "id", cJSON_CreateNumber(123));
        cJSON_AddItemToObject(root, "dp", object1 = cJSON_CreateObject());
        
        cJSON_AddItemToObject(object1, "temperature", array1 = cJSON_CreateArray());
        cJSON_AddItemToArray(array1, object2 = cJSON_CreateObject());
        cJSON_AddNumberToObject(object2, "v", 23.5);
        
        cJSON_AddItemToObject(object1, "humidity", array2 = cJSON_CreateArray());
        cJSON_AddItemToArray(array2, object3 = cJSON_CreateObject());
        cJSON_AddNumberToObject(object3, "v", 60.3);
    

    3)创建完成,调用函数打印生成的json字符串;

        char *out = cJSON_Print(root);
        printf(" %s \n", out);
    

    4)最后,释放掉内存;调用cJSON_Delete(root),其余子节点申请的内存会一并释放掉。

    
        if(out)
        {
            free(out);
        }   
        if(root)
        {
            cJSON_Delete(root);
        }
    

    解锁更多章节>>>

    作者:HarryP0tter
    想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com

  • 相关阅读:
    c#+web下载文件夹
    c#+web下载文件夹
    ueditor+实现word图片自动上传
    ueditor+复制word+图片不能上传
    大文件上传速度解决方案
    html大文件上传下载
    上传文件夹 vue
    文件夹上传控件
    怎样退出App之前唤醒还有一个App?
    Data Matrix Font and Encoder条码控件可以以字体的形式来打印DataMatrix条形码
  • 原文地址:https://www.cnblogs.com/HarmonyOS/p/14115546.html
Copyright © 2011-2022 走看看