Я хочу проанализировать файл / строку json с помощью Boost property_tree, но вместо того, чтобы поддеревья были проанализированы в массиве, я бы хотел, чтобы он оставался строкой для использования в другой существующей функции, которая работает только с json-Strings.
Надеюсь, достаточно следующего примера:
example.json
{
"type": "myType",
"colors": {
"color0":"red",
"color1":"green",
"color2":"blue"
}
}
main.cpp
std::stringstream ss("example.json");
ptree pt;
read_json(ss, pt);
std::string sType = pt.get("type", "");
std::string sColors = pt.get<std::string>("colors");
std::cout << "sType: " << sType << std::endl; // sType: myType
std::cout << "sColors: " << sColors << std::endl; // sColors: {"color0":"red", "color1":"green", "color2":"blue"}
Я пробовал несколько функций, например, pt.get_child("colors")
просто вернул бы другое ptree, а pt.get_value<std::string>("colors")
вернуло бы пустую строку ("")
.
. Желаемый результат выглядел бы так:
sColors: {"color0":"red", "color1":"green", "color2":"blue"}
или
sColors: {\"color0\":\"red\", \"color1\":\"green\", \"color2\":\"blue\"}
Есть ли способ получить желаемый результат для sColors?