gpt4 book ai didi

c++ - 使用 nlohmann C++ 库读取 json 对象数组

转载 作者:行者123 更新时间:2023-12-04 15:20:37 29 4
gpt4 key购买 nike

我可以在 nlohmann 库中使用这种语法

{
"key1": {"subKey1": "value11",
"subKey2": "value12"},
"key2": {"subKey1": "value21",
"subKey2": "value22"}
}

但是我有一个新文件,它也是有效的 json(我检查过)并且是这样写的,它由一个重复对象数组组成。我的代码将需要查看这些对象并分别检查它们内部的值:

[
{"key1": "value11",
"key2": "value12"},
{"key1": "value21",
"key2": "value22"}
]

我曾经以这种方式读取我的 json 文件:

  #include "json.hpp"

nlohmann::json topJson;
nlohmann::json subJson;

if(topJson.find(to_string("key1")) != topJson.end())
{
subJson = topJson["key1"];
entity.SetSubKeyOne(subJson["subKey1"]);
}

但这不适用于我的新文件语法。我怎样才能访问这些重复的对象并告诉 nlohmann 我的对象在一个数组中?更准确地说,我如何能够使用此文件语法达到(例如)“value22”?

谢谢!

最佳答案

你可以试试这个:

std::string ss= R"(
{
"test-data":
[
{
"name": "tom",
"age": 11
},
{
"name": "jane",
"age": 12
}
]
}
)";

json myjson = json::parse(ss);

auto &students = myjson["test-data"];

for(auto &student : students) {
cout << "name=" << student["name"].get<std::string>() << endl;
}

关于c++ - 使用 nlohmann C++ 库读取 json 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63398580/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com