我只是尝试使用rapidjson。 并编写一些代码将代码转换为字符串。
Document dd;
dd.SetObject();
Value num(kNumberType);
num.SetInt(23);
dd.AddMember("number", num, dd.GetAllocator());
GenericStringBuffer< UTF8<> > buffer;
Writer<GenericStringBuffer< UTF8<> > > writer(buffer);
dd.Accept(writer);
// use writer
writer.StartObject();
writer.EndObject();
printf("%s\n", buffer.GetString());
输出
{"number":23}{}
在物体之后获得额外的括号是很奇怪的。但它与漂亮的作家合作很好。
StringBuffer buffer;
PrettyWriter<StringBuffer> writer(buffer);
dd.Accept(writer);
printf("%s\n", buffer.GetString());
我得到了这样的结果:
{
"number": 23
}
答案 0 :(得分:1)
调用dd.Accept(writer)
时,DOM将字符串化为编写者。
之后,调用writer.StartObject()
和writer.EndObject()
只需使用类似SAX的API编写另一个空对象(即编写“额外大括号”)。
因此输出包含DOM输出和SAX输出。这是预期的产出。