JSON-C++开源项目CJsonObject试用demo记录
CJsonObiect-C++开源JSON生成、解析
- 还是挺容易使用的
试用demo
#include <CJsonObject.hpp>
#include <iostream>
using namespace neb;
using namespace std;
int main(int argc, char** argv){
auto MyJSON = new CJsonObject;
MyJSON->Add("name","张三"); //调用Add为json对象增加label
MyJSON->Add("age",24);
MyJSON->Add("height",175);
MyJSON->Add("weight",53);
MyJSON->Add("sex","male");
MyJSON->Add("married",false);
string str = MyJSON->ToFormattedString();//这个方法是格式化json
cout << str << endl;
cout << (*MyJSON)("name")<< endl;//CJsonObject重载()操作符,可以使用()查找相应type的value,如果不存在那么string就为空
string demo = "{\"name\":\"李四\",\"age\":24,\"height\":170,\"weight\":50,\"sex\":\"female\",\"married\":false}";
auto CopyMyJSON = new CJsonObject;
CopyMyJSON->Parse(demo); //解析json数据
cout << CopyMyJSON->ToFormattedString()<<endl;
cout << (*CopyMyJSON)("name") <<endl;
auto ArrayJSON = new CJsonObject;
(*ArrayJSON).AddEmptySubArray("array"); //调用这个方法添加一个数组成员
(*ArrayJSON)["array"].Add(neb::CJsonObject("{}")); //调用重载后的[]运算符,在数组成员中添加新普通成员
(*ArrayJSON)["array"][0].Add("name","mike");//再利用[]运算符,在第一个数组成员里增加label
(*ArrayJSON)["array"][0].Add("age",20);
cout << (*ArrayJSON)["array"][0].ToString()<<endl;
(*ArrayJSON)["array"].Add(neb::CJsonObject("{\"name\":\"john\",\"age\":24}")); //直接添加
cout << (*ArrayJSON)["array"][1].ToString()<<endl;
ArrayJSON->AddEmptySubObject("class");//在对象中添加空的子对象
(*ArrayJSON)["class"].Add("name","bba");//子对象也可以用[]操作符定位
cout << ArrayJSON->operator[]("class").ToString()<<endl;
cout << ArrayJSON->ToString()<<endl;
return 0;
}
- 输出