gpt4 book ai didi

java - 如何从json数组中读取特定的json对象元素?

转载 作者:行者123 更新时间:2023-12-02 09:49:03 25 4
gpt4 key购买 nike

   {
"firstName": "John",
"lastName": "Smith",
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": 10021
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "fax",
"number": "646 555-4567"
}
]
}

我只想从phoneNumbers json 数组中读取“家庭”电话号码,而不是“传真”电话号码。我不想使用索引来获取“家庭”电话号码。

最佳答案

如果您不想使用索引,您可以按属性过滤 phoneNumbers 数组。使用JSONArrayJSONObject 类和 Java 8 流:

String json = Files.lines(Paths.get("src/main/resources/data.json")).collect(Collectors.joining());

JSONObject jsonObject = new JSONObject(json);
JSONArray phoneNumbers = jsonObject.getJSONArray("phoneNumbers");

String homeNumber = phoneNumbers.toList()
.stream()
.map(o -> (Map<String, String>) o)
.filter(stringStringMap -> stringStringMap.get("type").equals("home"))
.map(stringStringMap-> stringStringMap.get("number"))
.findFirst()
.orElse("unknown");

System.out.println(homeNumber);

打印:

212 555-1234

关于java - 如何从json数组中读取特定的json对象元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56449177/

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