rapidJson 的使用

来源:互联网 发布:阿里云学生没有库存 编辑:程序博客网 时间:2024/05/18 05:52

头文件

#include "json/document.h"#include "json/prettywriter.h"#include "json/stringbuffer.h"

 

这是生成数组的

复制代码
void test(){    string info = "{\"id\":\"1111111\",\"cards\":[0,1,2,3,4,5,6,7,8,9],\"jiaoDiZhu\":\"\"}";    rapidjson::Document doc;    doc.Parse<0>(info.c_str());    rapidjson::Value &dataArray = doc["cards"];    if (dataArray.IsArray())    {        for (rapidjson::SizeType i = 0; i < dataArray.Size(); i++)        {            const rapidjson::Value& object = dataArray[i];            printf("%d\n",object.GetInt());        }    }}
复制代码

 

复制代码
void test(){    //read json    string updateInfo = "{\"UpdateInfo\":[{\"url\":\"aaaa.ipa\",\"platform\":\"ios\"}]}";        rapidjson::Document doc;    doc.Parse<0>(updateInfo.c_str());    rapidjson::Value &dataArray = doc["UpdateInfo"];    if (dataArray.IsArray())    {        for (int i = 0; i < dataArray.Size(); i++)        {            const rapidjson::Value& object = dataArray[i];            string url = object["url"].GetString();            string platform = object["platform"].GetString();        }    }    //write json    rapidjson::Document document;    document.SetObject();    rapidjson::Document::AllocatorType& allocator = document.GetAllocator();    rapidjson::Value array(rapidjson::kArrayType);    for (int i = 0; i < 10; i++)    {        rapidjson::Value object(rapidjson::kObjectType);        object.AddMember("id", 1, allocator);        object.AddMember("name", "test", allocator);        object.AddMember("version", 1.01, allocator);        object.AddMember("vip", true, allocator);        object.SetInt(i);        array.PushBack(object, allocator);    }    document.AddMember("title", "PLAYER INFO", allocator);    document.AddMember("players", array, allocator);    rapidjson::StringBuffer buffer;    rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);    document.Accept(writer);    auto out = buffer.GetString();    log("out: %s", out);}
复制代码

 

下面是单个的

复制代码
void readTest(){    char json[] = "{\"carriorName\":\"日本电信\",\"deviceName\":\"iPhone5,2\",\"osName\":\"android\",\"osVersion\":\"8.1\",\"appId\":\"com.mmcshadow.doudizhu\",\"versionName\":\"1.0\",\"versionCode\":\"1.0\",\"deviceId\":\"11111111\"}";    rapidjson::Document d;    d.Parse<0>(json);    printf("%s\n", d["carriorName"].GetString());    printf("%s\n", json);}
复制代码
复制代码
void writeTest(){    rapidjson::Document document;    rapidjson::Document::AllocatorType& allocator = document.GetAllocator();    rapidjson::Value root(rapidjson::kObjectType);    root.AddMember("name", "哥伦布啊", allocator);    root.AddMember("gold",1234,allocator);    rapidjson::StringBuffer buffer;    rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);    root.Accept(writer);    std::string reststring = buffer.GetString();    std::cout << reststring << std::endl;}
0 0
原创粉丝点击