使用nlohmann json将整数列表解压缩为std :: vector <int>

时间:2019-01-27 15:28:58

标签: c++ json list unpack nlohmann-json

我正在使用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>>()一样失败

交叉链接到https://github.com/nlohmann/json/issues/1460

1 个答案:

答案 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);

我向作者致歉。