我正在使用nlohman::json。
它非常棒,但有没有什么方法可以解包:
{
"my_list" : [1,2,3]
}
如何将其转换为 std:vector<int>
?
我在文档中找不到任何提及,std::vector<int> v = j["my_list"];
失败了,j["my_list"].get<std::vector<int>>()
也是。
我正在使用nlohman::json。
它非常棒,但有没有什么方法可以解包:
{
"my_list" : [1,2,3]
}
如何将其转换为 std:vector<int>
?
我在文档中找不到任何提及,std::vector<int> v = j["my_list"];
失败了,j["my_list"].get<std::vector<int>>()
也是。
实际上它是可以工作的。我没有分离出一个测试用例,而且我的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);