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