gpt4 book ai didi

c++ - 获取节点在rapidjson中的偏移量?

转载 作者:行者123 更新时间:2023-11-28 06:23:12 25 4
gpt4 key购买 nike

我正在使用 rapidjson 将一个 json 字符串反序列化为一个对象。当我遇到问题时,不是 json 的结构,而是内容,我想报告一个错误,说明问题所在的偏移量。

不幸的是,除非是解析错误,否则我看不到从哪里可以获得文档中值的当前偏移量。任何人都有办法实现这一目标吗?

例如:

Document doc;
doc.Parse<0>(json.c_str());
if( doc.HasMember( "Country" ) ) {
const Value& country_node = doc["Country"];
if( !isValid(country_node.GetString()) )
cout << "Invalid country specified at position " << country_node.Offset()?????
}

最佳答案

不幸的是,RapidJSON 在 DOM API 中不支持这一点。

如果使用SAX API,当遇到无效值时,可以在handler函数中返回falseReader会产生一个kParseErrorTermination 偏移量错误。

之所以DOM不支持这个,是因为这个会产生内存开销,可能很少用到。请在 GitHub 提出问题如果您想与社区进一步讨论此功能。

关于c++ - 获取节点在rapidjson中的偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28999804/

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