qt4沒有原生的庫對json處理,qt5提供了json處理庫,使用起來稍微感覺有點麻煩,特別是修改值的時候,非常不方便。cjson是乙個c語言編寫的json處理庫,已經被大量的使用,穩定性和高效性毋庸置疑,該庫只包含乙個.h 和 .cpp檔案,使用起來非常方便,但是對於習慣qt開發者來說,cjson庫需要自己管理記憶體的開闢和釋放,使用不是特別方便。
**son庫基於cjson,進行qt的封裝,解決qt原生使用不方便和cjson手動管理記憶體的問題。本專案已經在github上開源,**son,以下是標頭檔案,一看就能明白怎麼使用
主要特點
json_object json_array 可以直接解析和序列化json字串;
支援qt4、qt5,與qt的類深度結合qbytearray\ qvariant \ qstring等;
非常符合qt的使用習慣;
無需手動管理記憶體;
使用方便簡單,只需新增4個檔案到工程中即可;
採用utf-8編碼,支援中文;
//使用示例
json_object obj
obj.
insert
("double"
,12.32132);
obj.
insert
("int"
,456);
obj.
insert
("bool"
,true);
json_array array;
array.(1
);array.
(true);
array.
("string");
array.(tr
("中文亂碼"))
; array.
(12.324);
array.
(obj)
;qdebug()
<< array.
format_string()
;qdebug()
<< obj.
format_string()
<< obj.
value
("double").
todouble()
; json_object obj1(""
);qdebug()
<< obj1.
value
("key").
toint()
;
標頭檔案
ben#ifndef **son_header_20200623
#define **son_header_20200623
#include
#include
#include
#include
struct cjson;
class
json_object
;class
json_array
;class
json_attribute
;class
json_value
;//基類,實現了一些共同的方法
class
json_inte***ce
;void
create
(json_type_enum type)
; cjson *
parse_create
(qbytearray json_string)
; cjson *m_json;
qstring m_errormsg;};
class
json_value
;json_value()
;json_value
(bool b)
;json_value
(double n)
;json_value
(const qstring & s)
;json_value
(const
char
* s)
;json_value
(const json_value & other)
;json_value
(int n)
;json_value
(qint64 n)
;json_value
(const json_object &obj)
;json_value
(const json_array &a)
;bool
tobool()
const
;double
todouble()
const
;int
toint()
const
; qstring tostring()
const
; json_object toobject()
const
; json_array toarray()
const
; type_enum type()
const
;bool
is_empty()
const
;protected
: type_enum m_type;
qvariant m_value;};
class
json_object
:public json_inte***ce
;class
json_array
:public json_inte***ce
;#endif
// pugijson_h
cjson構建 cJSON的構造和解析
對於cjson的使用,我主要是用來模擬遠端伺服器端返回的乙個json型別的目錄結構,客戶端進行獲取並進行解析,把解析出來的目錄按照原本的結構顯示在本地。cjson是乙個超輕巧,攜帶方便,單檔案,簡單的可以作為ansi c標準的json解析器。cjson結構體 typedef struct cjson...
C json庫的安裝
二.解壓 1.解壓scons 3.1.0.tar.gz,進入scons 3.1.0 目錄,執行 sudo python setup.py install tar xvf scons 3.1.0.tar.gz cd scons 3.1.0 sudo python setup.py install 2....
cJSON的資料封裝
一 示例程式如下 cjson封裝 物件,陣列 包含,被包含的關係 cjson obj cjson createobject cjson subobj cjson createobject cjson additemtoobject subobj,factory cjson createstring ...