cJSON學習筆記 續集

2021-06-22 13:18:19 字數 2852 閱讀 1478

0.前言

本文試圖說明如何使用cjson構造各種各樣的json資料報。在前段時間已經寫過一篇cjson的文章,所以本文成為「續集」。

【相關博文】

【 前端學習——json學習】——學習各種各樣的json格式 【

cjson學習筆記】——本學習筆記的前一「集」。

【**倉庫】

—— cjson-example

**倉庫位於bitbucket使用hg(而不是git),hg

在windows或ubuntu上均有很好用的gui工具——tortoisehg,本人愚笨沒能熟練掌握git。

【 tortoisehg使用說明】——如果沒有使用過hg請參考博文,參考clone部分操作即可。

【測試工具】

【ubuntu】eclipse+gcc

【windows】eclipse+mingw

1.重要函式說明

兩個建立

【建立json物件】cjson *cjson_createobject(void);

【建立json陣列】cjson *cjson_createarray(void);

兩種新增

【向物件中新增】void

cjson_additemtoobject(cjson *object,const char *string,cjson *item);

【向陣列中新增】void cjson_additemtoarray(cjson *array, cjson *item);

常用幾招

【向物件中增加數字】cjson_additemtoobject(root, "value", cjson_createnumber(value));

【向物件中增加檔案】cjson_additemtoobject(root, "string", cjson_createstring(string));

json巢狀

【向物件中增加陣列】cjson_additemtoobject(root, "rows", rows = cjson_createarray());

【向陣列中增加物件】cjson_additemtoarray(rows, row = cjson_createobject());

2.建立各種各樣的json資料報

在這裡通過**舉幾個例子,更多的內容請檢視**倉庫中的相關檔案。

json數字

void create_single_number(void) 

#endif

}

【簡單說明】

cjson_additemtoobject(root, "value", cjson_createnumber(value)); 

cjson_addnumbertoobject(root, "value", value); 

和效果完全相同。

json字串

void create_single_string(void) 

#endif

}

【簡單說明】

cjson_additemtoobject(root, "name", cjson_createstring(name));

cjson_addstringtoobject(root, "name",name);

和效果完全相同。

json布林型別

void create_bool(void) 

#endif

}

【簡單說明】

布林型別不需要加引號。

3.json格式巢狀

json格式在使用時往往存在巢狀,例如json物件中巢狀json陣列而json陣列中巢狀json物件,下面就通過幾個簡單的例子說明問題。

json簡單巢狀

void create_******(void) ;

root = cjson_createobject(); // 建立根

cjson_additemtoobject(root, "lists", cjson_createintarray(list, 4));

// 列印並釋放

out = cjson_print(root); cjson_delete(root); printf("%s\n",out); free(out);

// 控制台輸出

#if 0

#endif

}

json複雜巢狀

void create_complex(void) ;

char *url[3] = ;

root = cjson_createobject(); // 建立根

cjson_addnumbertoobject(root, "total", 3);

// 在object中加入array

cjson_additemtoobject(root, "rows", rows = cjson_createarray());

for(i = 0; i < 3; i++)

// 列印並釋放

out = cjson_print(root); cjson_delete(root); printf("%s\n",out); free(out);

// 控制台輸出

#if 0

, , ]

}#endif

}

【簡單說明】

rows為json物件,rows物件中巢狀json陣列,每乙個json陣列的元素又是乙個json物件,該該物件名為row,row物件中具有兩個鍵值對,分別是titile和url。

持續整合筆記

關注將交易三期退款核心放到cc伺服器上去,每次commit做持續整合。中間需要做很多的事情,比如,單元測試環境的隔離,對payway的mock,靜態檢查,爭取在這個專案8月底完成後,能夠對持續整合有乙個完整的了解和認識。讀 持續整合 軟體質量改進與風險降低之道 的筆記。1 持續整合常用的ant任務 ...

STM32學習筆記之Cjson的使用

需要用到的幾個函式 1 解析jsonj結構得到cjson物件 cjson root cjson parse char buf 2 獲取無格式的json物件 cjson printunformatted cjson item 3 根據鍵值獲取對應的值 cjson cjson getobjectitem...

微軟企業庫4 1學習筆記(七)建立物件 續集1

3.2使用unity模組建立企業庫物件 下面介紹如何使用前面的方法獲取企業庫物件的例項。示例如下 iunitycontainer containter new unitycontainer containter.addnewextension enterpriselibrarycoreextensi...