json快速入門(cjson解析)

2021-08-08 02:22:30 字數 2159 閱讀 3296

json是儲存和交換文字資訊的語法,與xml類似。json有兩種結構,分別是陣列和物件

json解析環境

cjson是乙個超輕巧,攜帶方便,單檔案,簡單的可以作為ansi-c標準的json解析器,cjson庫包括cjson.h和cjson.c兩個檔案,放入指定目錄直接呼叫就可以了。

1. 有一對基本的

2. 內部都是鍵值對格式。key 值為字串 "key"

3. value可取值有:字串、數值、陣列、物件、null、true、false

4,資料有逗號分隔

5,花括號儲存物件

6,方括號儲存陣列

(1)建立乙個json的物件: cjson *json = cjson_createobject()

(2)新增乙個元素 到 物件中: cjson_additemtoobject(json, "key", value)

value的型別: 

字串: cjson_createstring("value");

數值:  cjson_createnumber(value);

陣列:  cjson_createarray(無參);

物件:  cjson_createobject(void);

(3)新增乙個元素 到陣列中: cjson_additemtoarray(arr, item);   item 是 cjson型別

(4)新增具體型別的元素到 object中:

巨集函式:cjson_addnumbertoobject(json, "key", value);  value 是 int

巨集函式:cjson_addstringtoobject(json, "key", value);         value 是string

(5)呼叫c的檔案操作函式fwrite() 生成乙個json檔案。

(1)呼叫c的檔案操作函式 fread() 讀取json檔案

(2)解析乙個 json 格式的字串, 生成 cjson的結構體 cjson *data = cjson_parse(buf);

(3)將cjson 結構體格式的 json物件,轉換成 char * buf = cjson_print(data);

(4)獲取json物件中的元素:cjson * node = cjson_getobjectitem(json, "key");

(5)判斷 json物件中是否含有某乙個元素:cjson_hasobjectitem(json, "key");  有:1, 無:0

(6)node->type  判斷 物件的value型別。  參看 cjson結構體。

(7)獲取 陣列元素的個數:cjson_getarraysize(nodearr);

(8)根據陣列下標,獲取元素:cjson_getarrayitem(nodearr, index);

(9)遍歷陣列:cjson_arrayforeach(tmpnode, nodearr);

[cpp]view plain

copy

print?

#include 

#include 

#include 

#include "cjson.h"  

int main(void)  

cjson * tempobjest = cjson_getarrayitem(temp, 3);  

//獲取該物件中的元素  

cjson *name = cjson_getobjectitem(tempobjest, "name");  

printf("name:%s\n", name->valuestring);  

cjson *age = cjson_getobjectitem(tempobjest, "age");  

printf("age:%d\n", age->valueint);  

//開啟檔案寫書json資料  

file *fp = fopen("test.json", "w");  

fwrite(buf, 1, strlen(buf), fp);  

free(buf);  

fclose(fp);  

//釋放  

cjson_delete(root);  

system("pause");  

return 0;  

}  

使用cJSON庫解析JSON

cjson是乙個基於c的json解析庫,這個庫非常簡單,只有cjson.c和cjson.h兩個檔案,支援json的解析和封裝,需要呼叫時,只需要 include cjson.h 就可以使用了,json官方 json json字串 這個json物件只有兩個鍵值對,鍵name對應字串andy,鍵age對...

cJSON對json資料的解析

目標 對下面這種結構的json資料解析 處理步驟 1.將json資料儲存在a.txt內 2.用fopen對資料檔案進行讀取 3.將讀取出的資料流寫入到乙個字串陣列中 4.用cjson parse將字串陣列轉換為json資料物件root 5.對root由外層向內層解析 如下 include inclu...

json快速解析

寫專案經常會用到 json 解析 為了方便自己 也方便大家 我寫個demo 出來 依賴 谷歌 com.google.code.gson gson 2.8.0 string str 你的json字串 jsonobject json jsonobject parse.parse str 獲取外層的狀態碼...