jsoncpp是乙個使用
c++語言實現的物件導向的
json
庫。
jsoncpp提供的介面中有
3個核心類:
reader
、writer
、value。
reader
類負責從字串或者輸入流中載入
json
文件,並進行解析,生成代表
json文件的
value
物件。
writer類負責將記憶體中的
value
物件轉換成
json
文件,可輸出到檔案或者是字串中。
value類的物件代表乙個
json
值,既可以代表乙個文件,也可以代表文件中乙個值。
乙個json
文件的大致過程如下:
//準備json源資料,如讀取文件:std::stringstrdoc=readfromfile(… );
。。。
//生命頂級
value物件
json::valueroot;
//宣告
reader物件
json::reader_reader;
//解析json文件
_reader.paser(strdoc,root);
json::valuetype有8種,以下是定義。 enum json::valuetype
enumerator:
nullvalue 'null' value
intvalue signed integer value
uintvalue unsigned integer value
realvalue double value
stringvalue utf-8 string value.
booleanvalue bool value
arrayvalue array value (ordered list)
objectvalue object value (collection of name/value pairs).
static1) json::reader 是用於讀取json物件的值。void printvaluetree( file *fout, json::value &value, const std::string &path = "."
) }break
;case
json::objectvalue:\n"
, path.c_str() );
json::value::members members( value.getmembernames() );
std::sort( members.begin(), members.end() );
std::
string suffix = *(path.end()-1) == '
.' ? "" : "."
;
for ( json::value::members::iterator it = members.begin(); it != members.end(); ++it )
}break
;default
:
break
; }
}
用法:json::value reader_object;
json::reader reader;
const char* reader_document = "";
if (!reader.parse(reader_document, reader_object))
return 0;
std::cout << reader_object["path"] << std::endl;
std::cout << reader_object["size"] << std::endl;
結果:"/home/test.***"
4000
2) 增加子節點
json::value root;
json::value leaf;
root["leaf_node"] = leaf;
4) 解析陣列值
jarray = root["key_array"];
for ( unsigned int i = 0; i < jarray.size(); i++ )
二. 通過使用writer將value轉換為json文件(string):
1) json::fastwriter用來快速輸出json物件的值,即。
用法:json::fastwriter writer;
std::cout << writer.write(json_media)<< std::endl;
結果:,"path":"/home/***/test.***"}
2) json::styledwriter用來格式化輸出json物件的值。
用法:json::styledwriter writer;
std::cout << writer.write(json_media) << std::endl;
結果:,
"path" : "/home/***/test.***"}
JOIN用法簡述
join有以下幾種用法 left join left outer join 左向外聯接,得到左表中的所有行與右表的聯接,右表中無匹配聯接條件的值時返回空值.right join right outer join 右向外聯接,得到右表中的所有行與左表的聯接,左表中無匹配聯接條件的值時返回空值.full...
container of用法簡述
在學習linux驅動的過程中,遇到乙個巨集叫做container of。該巨集定義在include linux kernel.h中,首先來貼出它的 define container of ptr,type,member 它的作用顯而易見,那就是根據乙個結構體變數中的乙個域成員變數的指標來獲取指向整個...
Screen 用法簡述
screen是一款由gnu計畫開發的用於命令列終端切換的自由軟體。使用者可以通過該軟體同時連線多個本地或遠端的命令行會話,並在其間自由切換。gnu screen可以看作是視窗管理器的命令列介面版本。它提供了統一的管理多個會話的介面和相應的功能。1.1 會話恢復 只要screen本身沒有終止,在其內部...