8

我正在使用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

4

1 回答 1

14

所以它确实有效。我没有隔离测试用例,我的 JSON 字符串格式不正确。

所以,

json J(json_string);
J["my_list"].get<std::vector<int>>()

确实有效。

在我的例子中,我确保我的 C++ var-names 匹配 JSON 键,所以我可以简单地使用宏:

#define EXTRACT(x) x = J[#x].get< decltype(x) >()

int foo;
std::vector<float> bar;

EXTRACT(foo);
EXTRACT(bar);
于 2019-01-28T02:01:23.070 回答