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;
}
  • 输出
效果图
posted @ 2020-09-24 17:22  JoyooO  阅读(274)  评论(0编辑  收藏  举报