如何从 rapidjson 中的字符串文字创建节点?
how to create a node from a string literal in rapidjson?
我想从 rapidjson 中的字符串文字创建一个 JSON 节点,我的代码如下(这不起作用的原因):
inline rapidjson::Value to_json(const std::string& myStr) {
auto result = rapidjson::Value(rapidjson::kStringType);
result.SetString(myStr);
return result;
}
我记得 Jackson 的 API 非常好,你可以通过 TextNode.valueOf(myStr)
创建一个 String 节点。
是否有类似的方法从字符串文字创建 JSON 节点?
您将需要一个分配器。如果您定义了 RAPIDJSON_HAS_STDSTRING=1
,您可以简单地:
Document d;
std::string s = "...";
Value v(s, d.GetAllocator());
我想从 rapidjson 中的字符串文字创建一个 JSON 节点,我的代码如下(这不起作用的原因):
inline rapidjson::Value to_json(const std::string& myStr) {
auto result = rapidjson::Value(rapidjson::kStringType);
result.SetString(myStr);
return result;
}
我记得 Jackson 的 API 非常好,你可以通过 TextNode.valueOf(myStr)
创建一个 String 节点。
是否有类似的方法从字符串文字创建 JSON 节点?
您将需要一个分配器。如果您定义了 RAPIDJSON_HAS_STDSTRING=1
,您可以简单地:
Document d;
std::string s = "...";
Value v(s, d.GetAllocator());