您的位置:首页 > Web前端 > JavaScript

rapidjson的read和write的sample

2016-05-19 17:01 435 查看
#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;
}


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