首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rapidjson文档

Rapidjson文档
EN

Stack Overflow用户
提问于 2014-06-06 23:01:03
回答 3查看 8.3K关注 0票数 4

我正在尝试使用rapidjson创建一个json文档,但我不知道如何才能为我所做的其他元素复制以下文档的一部分,特别是以"allocations“开头的嵌套对象

代码语言:javascript
复制
Value valObjectString(kStringType);
valObjectString.SetString("string");
doc.AddMember("string", valObjectString, doc.GetAllocator());

但是“分配”和"url“又如何呢?

代码语言:javascript
复制
{
  "string1": "string",
  "string2": "string",
  "string3": "string",
  "string4": "string",
  "string5": "string",
  "allocations": [
    {
      "allocation": "string",
      "url": "string"
    }
  ]
}
EN

回答 3

Stack Overflow用户

发布于 2014-08-27 23:32:55

你可以这样做

代码语言:javascript
复制
Value valObjectString(kStringType);
valObjectString.SetString("string");
doc.AddMember("string", valObjectString, doc.GetAllocator());

Value array(kArrayType);
Value tmp;
tmp.SetObject();
tmp.AddMember("allocation", "string", doc.GetAllocator());
tmp.AddMember("url", "string", doc.GetAllocator());
array.PushBack(tmp, doc.GetAllocator());
doc.AddMember("allocations", array, doc.GetAllocator());
票数 7
EN

Stack Overflow用户

发布于 2017-06-17 04:25:09

创建所需的JSON文档的一种简单方法是使用"rapidjson/writer.h"包含。

您需要使用writer.Key()创建对象的键并对其进行命名。然后,您可以使用writer.String()来设置密钥的值。

(这里我使用的是.String(),但是您可以使用RapidJson支持的任何类型。)

此外,您还可以使用writer.StartObject()writer.StartArray()writer.EndObject()writer.EndArray()命令轻松地告诉编写器何时开始和结束对象和数组。

代码语言:javascript
复制
Document yourJsonDoc;

StringBuffer s;
Writer<StringBuffer> writer(s);

writer.StartObject();
writer.Key("string1");
writer.String("string");
writer.Key("string2");
writer.String("string");
writer.Key("string3");
writer.String("string");
writer.Key("string4");
writer.String("string");
writer.Key("string5");
writer.String("string");
writer.Key("allocations");
writer.StartArray();
writer.StartObject();
writer.Key("allocations");
writer.String("string");
writer.Key("url");
writer.String("string");
writer.EndObject();
writer.EndArray();
writer.EndObject();

yourJsonDoc.Parse(s.GetString().c_str());

如果您想要添加其他对象,依此类推。

票数 2
EN

Stack Overflow用户

发布于 2014-06-09 23:33:40

好的,你需要创建一个包含分配和url的数组,并且你需要把这个数组放在分配中:

代码语言:javascript
复制
rapidjson::Value myArray(rapidjson::kArrayType);

doc.AddMember("allocations", myArray, doc.getAllocator);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24084947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档