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

dldeef67  于 2023-03-24  发布在  其他
关注(0)|答案(1)|浏览(155)

我用的是nlohman::json
这很棒,但有没有办法解开:

{
    "my_list" : [1,2,3]
}

变成了std:vector<int>
我在文档中找不到任何提及,std::vector<int> v = j["my_list"];失败了,j["my_list"].get<std::vector<int>>()也失败了。

vhmi4jdf

vhmi4jdf1#

实际上,它确实有效。我没有隔离测试用例,而且我的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);

相关问题