日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jsoncpp学习笔记

發布時間:2023/11/30 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsoncpp学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

jsoncpp


一. json基礎

類型:
1. Json::Value為主要數據類型;
2. Json::Reader將文件流或字符串創解析到Json::Value中,主要使用parse函數;3. Json::Writer:與JsonReader相反,將Json::Value轉換成字符串流等,Writer類是一個純虛類,并不能直接使用。在此我們使用 Json::Writer 的子類:son::FastWriter(將數據寫入一行,沒有格式),Json::StyledWriter(按json格式化輸出,易于閱讀)


二. 解析json

1. 從內存解析json

void f() {Json::Value root;Json::Reader reader;char str[] = "{\"name\" : \"liushall\", \"age\" : 20, \\"files\" : [\"1.json\", \"2.json\"]}";if ( !reader.parse( str, root ) ) {cout << "parse error.\n";return -1;}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++ ) {cout << files[i].asString() << ' ';} }

2. 從文件中解析json

提供的json文件:

{"name" : "liushall","age" : 10; }

代碼:

void f() {Json::Reader reader;Json::Value root;ifstream ifs("test.json");if ( !reader.parse( ifs, root ) ) {cout << "parse error.\n";return -1;}cout << root["name"].asString() << endl;cout << root["age"].asInt() << endl; }

三. 封裝json

1. 簡單json數據封裝

void f() {Json::Value root;Json::StyledWriter writer;root["name"] = "liushall";root["age"] = 20;string str = writer.write( root );cout << str << endl; }

2. 封裝json數據——內嵌array的object

int main() {Json::Value root;Json::StyledWriter writer;root["name"] = "liushall";root["age"] = 20;root["msg"] = "linux";Json::Value files;files["haha"] = "1.cpp";files["ha"] = "2.cpp";root["files"] = files;string str = writer.write( root );cout << str << endl; }

3. 封裝json數據——內嵌object的array

void f() { Json::Value root; Json::StyledWriter writer;{ Json::Value person; person["name"] = "liushall";person["age"] = 100;root.append( person );}{ Json::Value person; person["name"] = "Kit";person["age"] = 89;root.append( person );}root.append( "a json note" ); string json_file = writer.write(root);cout << json_file << endl; }

注意,不能直接用root[0] = person;,需要聲明[]內數字的類型,即root[1U] = person,聲明為unsigned類型。

參考:
https://www.cnblogs.com/tocy/p/json-intro_jsoncpp-lib.html
https://www.cnblogs.com/DswCnblog/p/6678708.html

總結

以上是生活随笔為你收集整理的jsoncpp学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。