cjson是一個(gè)開(kāi)源的C語(yǔ)言json庫(kù),可用于解析和生成JSON。其值(value)是JSON中的最基本單元。cjson庫(kù)提供五種不同類型的值:
//cjson value結(jié)構(gòu)體 typedef struct cjson_value{ struct cjson_value *next, *prev; //用于數(shù)組和對(duì)象中的列表 struct cjson_value *child; //用于對(duì)象中的key-value對(duì),存儲(chǔ)value的位置 int type; //cjson類型 union { double num; //數(shù)字類型的值 char *str; //字符串類型的值 struct { //數(shù)組和對(duì)象類型的值 struct cjson_value *head; struct cjson_value *tail; } vm; } u; } cjson_value;
而具體的類型則通過(guò)type字段來(lái)區(qū)分。cjson庫(kù)支持以下五種類型的值:
- cjson_null:表示空值(null)。
- cjson_false:表示布爾類型的假(false)。
- cjson_true:表示布爾類型的真(true)。
- cjson_number:表示數(shù)字(包括整數(shù)和浮點(diǎn)數(shù))。
- cjson_string:表示字符串。
- cjson_array:表示數(shù)組。
- cjson_object:表示對(duì)象/字典。
除了cjson_null、cjson_false、cjson_true三種類型的值之外,其它值的類型均可以分為兩類:簡(jiǎn)單類型和復(fù)合類型。簡(jiǎn)單類型即cjson_number和cjson_string,它們只包含自身的值,而復(fù)合類型則是cjson_array和cjson_object,它們以列表(鏈表)的形式儲(chǔ)存多個(gè)值,其中cjson_array的值可以是任意類型的值,而cjson_object的值則是“鍵值對(duì)”組成的。
通過(guò)以上介紹,我們可以初步了解cjson庫(kù)中value的基本類型和結(jié)構(gòu)。這些內(nèi)容是深入掌握cjson庫(kù)的重要基礎(chǔ)。