我正在使用https://github.com/nlohmann/json
太棒了。
但是..有什么方法可以解包:
{
"my_list" : [1,2,3]
}
变成std:vector<int>
吗?
我找不到任何提及,std::vector<int> v = j["my_list"];
和j["my_list"].get<std::vector<int>>()
一样失败
答案 0 :(得分:1)
我是个笨蛋。
它确实起作用。我没有隔离测试用例,并且我的JSON字符串格式错误。
所以
json J(json_string);
J["my_list"].get<std::vector<int>>()
起作用 。
在我的情况下,我确保我的C ++变量名与JSON键匹配,因此我可以简单地使用宏:
#define EXTRACT(x) x = J[#x].get< decltype(x) >()
int foo;
std::vector<float> bar;
EXTRACT(foo);
EXTRACT(bar);
我向作者致歉。