如何从 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());