【鴻蒙開發板試用】cJSON的使用
阿新 • • 發佈:2020-12-10
原始碼包含第三方的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