您的位置:首页 > 编程语言 > C语言/C++

世界上最好的c++ json解析器

2017-08-12 12:09 501 查看


url:    https://github.com/button-chen/tinyjson

#include "tinyjson.h"
#include <string>
#include <iostream>
using namespace std;

string jsonstring = "\
{\
\"name\":\"chenhuizong\",\
\"age\" : 26.9,\
\"data\" : [\
{\
\"one\":\"chenone\",\
\"two\" : {\
\"love1\":\"2233\",\
\"love2\":44444,\
}\
},\
{\
\"one\":\"chen22\",\
\"two\" : {\
\"love1\":\"8899\",\
\"love2\":10000,\
}\
}\
],\
\"lang\":\"cpp\"\
}\
";

int main()
{
// read
TinyJson json;
json.ReadJson(jsonstring);

string name = json.Get<string>("name");
float age = json.Get<float>("age");
string lang = json.Get<string>("lang");

cout << "name: " << name << "  age: " << age << "  lang: " << lang << endl;

Values data = json.GetChild("data");
cout << "data: " << endl;
for (int i = 0; i < data.GetCount(); i++) {
data.Parse(i);
string one = data.Get<string>("one");
cout << "one: " << one << endl;
Values two = data.GetChild("two");
for (int ii = 0; ii < two.GetCount(); ii++) {
two.Parse(ii);
string love1 = two.Get<string>("love1");
int love2 = two.Get<int>("love2");

cout << "love1: " << love1 << "  love2: " << love2 << endl;
}
}

// write
TinyJson wjson;
wjson["name"].Set("chenhuizong");
wjson["age"].Set(26);
wjson["handsome"].Set(true);

TinyJson subjson;
subjson["love1"].Set("book");
subjson["love2"].Set(666);

TinyJson subjson2;
subjson2["love1"].Set("book");
subjson2["love2"].Set(666);

wjson["data"].Put(subjson);
wjson["data2"].Put(subjson2);

string str = wjson.WriteJson();
cout << "json string: " << endl;
cout << str << endl;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: