cJSON使用說明總結

2021-10-23 11:35:30 字數 4295 閱讀 6674

cjson僅有乙個.h和乙個.c檔案組成,由於是純c語言實現的,所以跨平台性好;採用的是鍊錶儲存;

原型如下:

typedef

struct

cjson

cjson;

注:每個additem的節點都是子節點(child),多個子節點之間可以通過next和prev來指向前乙個後乙個節點;

從而實現遍歷的效果

//巨集定義,區分不同的type值

cjson的基本資料型別如上所示:有false,true,null,double,string,array,object;可以理解為該資料是乙個大括號中包含的鍵(key)值(value)對,其中key的值都是字串型別的;

例:可以利用函式char

*date

=cjson_print(

cjson

*item);

將結果顯示出來

建立方式

列印結果

cjson

*false_value=

cjson_createfalse();

false

cjson

*true_value=

cjson_createtrue();

true

cjson

*null_value=

cjson_createnull();

null

cjson

*double_value=

cjson_createnumber(

123);

123cjson

*string_value=

cjson_createstring(

"string");

string

cjson

*object=

cjson_createobject(); {}

cjson

*arr=

cjson_createarray();

建立:建立不同型別的陣列,

cjson

*arr=

cjson_createarray();

不指定型別,內部item可以混搭

cjson

*cjson_createintarray(

int*numbers,

int count);

cjson

*cjson_createfloatarray(

float

*numbers,

int count);

cjson

*cjson_createdoublearray(

double

*numbers,

int count);

cjson

*cjson_createstringarray(

const

char

**strings,

int count); 增:

void

cjson_additemtoarray(

cjson

*array,

cjson

*item);

void

cjson_additemreferencetoarray(

cjson

*array,

cjson

*item); 刪:

void

cjson_delete(

cjson

*c);

extern

cjson

*cjson_detachitemfromarray(

cjson

*array,

int which);

從陣列中移除,分離,不刪除

extern

void

cjson_deleteitemfromarray(

cjson

*array,

int which); 改:

void

cjson_replaceiteminarray(

cjson

*array,

int which,

cjson

*newitem); 查:

intcjson_getarraysize(

cjson

*array);

返回陣列長度

cjson

*cjson_getarrayitem(

cjson

*array,

int item);

返回指定下標

位置的節點

建立:cjson

*object=

cjson_createobject(); 增:

void

cjson_additemtoobject(

cjson

*object,

const

char

*string,

cjson

*item);

void

cjson_additemreferencetoobject(

cjson

*object,

const

char

*string,

cjson

*item);

//巨集的方式增加

cjson_addstringtoobject(json,"name","0123546");

cjson_addnumbertoobject(json,"age",123);

cjson_addnulltoobject(json,"dadfs");

cjson_addfalsetoobject(json,"dadfs");

cjson_addtruetoobject(json,"dadfs");

刪:void

cjson_delete(

cjson

*c);

//等同於delete變數

從樹上移開,

cjson

*cjson_detachitemfromobject(

cjson

*object,

const

char

*string);

void

cjson_deleteitemfromobject(

cjson

*object,

const

char

*string); 改:

void

cjson_replaceiteminobject(

cjson

*object,

const

char

*string,

cjson

*newitem); 查:

cjson

*cjson_getobjectitem(

cjson

*object,

const

char

*string);

通過key獲取節點

char*轉為cjson格式

cjson

*cjson_parse(

const

char

*value);

cjson格式轉char*

char

*cjson_print(

cjson

*item);

//帶格式的(美觀)

char

*cjson_printunformatted(

cjson

*item);

//不帶格式(雜亂,一行到完)

array和object可以互相作為item互為子節點,因此使用時沒有固定的格式,需要靈活應用

一般都是由乙個object作為根節點來使用

cJSON原始碼的使用說明

cjson是通訊方面乙個相容性比較好的乙個格式,具體的相關的格式如下 針對資源中的main函式來講解一下使用cjson原始碼的流程和相關的介面 組裝資料報 cjson pjsonroot null pjsonroot cjson createobject if null pjsonroot cjso...

使用說明 附註工具使用說明

附註工具使用說明 附註工具用途 附註工具主要用於更新利用word附註應用程式生成的帶域 的附註,該工具在word右鍵 更新鏈結 的基礎上進行了優化,故在使用時,不能再利用word右鍵 更新鏈結 而要用本工具的 更新當前鏈結 或 更新所有鏈結 使用說明 一 更換路徑 當利用word附註應用程式生成帶域...

使用說明 農用遮光網使用說明

農用遮光網使用說明 建築防塵網購買方 建築施工企業 在購買建築防塵網時,應該對 作出比較,可以分辨品牌 型號,且購買時應該在一定程度上了解信譽良莠。建築防塵網購買方 市場售賣方 在選購建築防塵網時,可以把 作為基礎,好的 可以用來彌補信譽不足,而差的 則需要按照你的服務收費。農用遮光網使用說明 用途...