как создать узел из строкового литерала в rapidjson?

Я хочу создать узел JSON из строкового литерала в rapidjson, мой код выглядит следующим образом (который не работает по причине):

inline rapidjson::Value to_json(const std::string& myStr) {
    auto result = rapidjson::Value(rapidjson::kStringType);
    result.SetString(myStr);
    return result;
}

Я помню, что API-интерфейсы Джексона настолько хороши, что вы можете создать узел String с помощью TextNode.valueOf(myStr).

Есть ли аналогичный способ создать узел JSON из строкового литерала?


person soulmachine    schedule 21.03.2017    source источник


Ответы (1)


Вам понадобится распределитель. И если вы определили RAPIDJSON_HAS_STDSTRING=1, вы можете просто:

Document d;
std::string s = "...";
Value v(s, d.GetAllocator());
person Milo Yip    schedule 21.03.2017
comment
Спасибо, я только что включил строку, добавив #define RAPIDJSON_HAS_STDSTRING 1, и она работает, я использую rapidjson в одном из своих проектов github .com/algohub/judge-engine - person soulmachine; 22.03.2017