如何查询json文件中对象的值

How to search for the value of an object in a json file?

本文关键字:文件 对象 json 何查询 查询      更新时间:2023-10-16

我正在尝试搜索json文件中对象的值。

如果我的json文件是这样的:

[
 {
  "friendName": "Ann",
  "birthday": "1990-04-19",
  "favoriteColor": "Purple",
 },
 {
  "friendName": "Max",
  "birthday": "1993-10-07",
  "favoriteColor": "Purple",
 },
 {
  "friendName": "Bob",
  "birthday": "1992-02-20",
  "favoriteColor": "Red",
 }
]

我怎么能做这样的事情(在伪):

if (object value is "Purple") {
    print object value of friendName;
}

所以最终结果是

Ann
Max

我使用json解析器json现代c++ (https://github.com/nlohmann/json)。我是c++的新手,所以我很难理解README。我使用Xcode(版本6.4)

我试过使用这个:

// find an entry
if (o.find("foo") != o.end()) {
// there is an entry with key "foo"
}

但它似乎不起作用。我知道如何打印一个对象的值,如果我知道它的位置,使用以下代码:

std::cout << obj[0]["friendName"];

这将导致:

Ann

另外,我也在寻找一种方法来读取值的第一部分。例如,如果我想列出生日在1992年期间或之后的人的名字,它将打印:

Max
Bob

任何指导将不胜感激!

通过c++ 11的魔力(以及一个设计良好的库),答案几乎与您的伪代码相同:

for (const auto& obj : my_json) {
    if (obj["favoriteColor"] == "Purple") {
        std::cout << obj["friendName"] << std::endl;
    }
}

打印

"Ann"
"Max"