头文件
#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;
}