如何从nlohmann json获取数组

时间:2017-03-19 13:53:37

标签: c++ json

我尝试使用JSON for Modern C ++搜索如何获取数组fron json,但我无法找到答案。

我有这样的json:

{
  "Command": "cmd",
  "Data":{"time": 200, "type":1},
  ...
}

我想问一下如何使用键"数据"来获取对象,如何存储它以及如何访问它的元素(数据中的元素和键的数量可以根据命令而改变)。

感谢您的帮助

1 个答案:

答案 0 :(得分:8)

您可以将json文件读取到json对象中:

std::ifstream jsonFile("commands.json");
nlohmann::json commands;
jsonFile >> commands;

检索“数据”对象(并打印它包含的元素数量):

nlohmann::json data = commands["Data"];
std::cout << "Number of items in Data: " << data.size() << std::endl;

最后循环遍历“数据”中的所有键和值:

for (auto it = data.begin(); it != data.end(); ++it)
{
    std::cout << it.key() << ": " << it.value() << std::endl;
}