jsoncpp學習筆記

2021-08-18 20:11:32 字數 1263 閱讀 4570

型別:

1. json::value為主要資料型別;

2. json::reader將檔案流或字串創解析到json::value中,主要使用parse函式;3. json::writer:與jsonreader相反,將json::value轉換成字串流等,writer類是乙個純虛類,並不能直接使用。在此我們使用 json::writer 的子類:son::fastwriter(將資料寫入一行,沒有格式),json::styledwriter(按json格式化輸出,易於閱讀)

1. 從記憶體解析json

void f() ";

if ( !reader.parse( str, root ) )

cout

<< "name : "

<< root["name"].asstring() << endl;

cout

<< "age : "

<< root["age"].asint() << endl;

json::value files = root["files"];

cout

<< "files : ";

for( int i = 0; i < files.size(); i++ )

}

2. 從檔案中解析json

提供的json檔案:

**:

void f() 

cout

<< root["name"].asstring() << endl;

cout

<< root["age"].asint() << endl;

}

1. 簡單json資料封裝
void f()
2. 封裝json資料——內嵌array的object
int main()
3. 封裝json資料——內嵌object的array
void f() 

string json_file = writer.write(root);

cout << json_file << endl;

}

注意,不能直接用root[0] = person;,需要宣告內數字的型別,即root[1u] = person,宣告為unsigned型別。

參考:

jsoncpp簡單示例

scons platform linux gcc 編譯出來的庫檔案在其libs linux gcc 4.4.2目錄下,有libjson linux gcc 4.4.2 libmt.so和libjson linux gcc 4.4.2 libmt.a。標頭檔案在解壓目錄下的include中。我的jso...

JsonCpp使用優化

最近乙個專案在使用jsoncpp,jsoncpp簡潔易用的介面讓人印象深刻。但是在實際使用過程中,我發現jsoncpp的效能卻不盡如人意,所以想著方法優化下效能。理解 1 jsoncpp中一切都是value,value用union指向自己儲存的資料。value的型別分為兩種,一種是容器型別,比如ar...

jsoncpp用法簡述

jsoncpp是乙個使用 c 語言實現的物件導向的 json 庫。jsoncpp提供的介面中有 3個核心類 reader writer value。reader 類負責從字串或者輸入流中載入 json 文件,並進行解析,生成代表 json文件的 value 物件。writer類負責將記憶體中的 va...