gpt4 book ai didi

c++ - rapidjson writer 生成额外的大括号

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:41 27 4
gpt4 key购买 nike

我只是尝试使用 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
}

最佳答案

dd.Accept(writer) 被调用时,DOM 被字符串化为 writer。

之后,调用 writer.StartObject()writer.EndObject() 只需使用类似 SAX 的 API 编写另一个空对象(即编写“额外的大括号”) .

所以输出包含DOM输出和SAX输出。这是预期的输出。

关于c++ - rapidjson writer 生成额外的大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15063105/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com