作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试实现一个函数,给定任何 JSONObject
和路径 String
,将返回与路径对应的对象属性。
例如,给定这个 json:
{
"name": "John",
"friends": [
{"name": "Paul",
"age":42},
{"name": "Peter",
"age":24}
],
"address": {"city": "London"}
}
getAttribute(jsonObject, "name")
应该返回 "John"
getAttribute(jsonObject, "address.city")
应该返回 "London"
getAttribute(jsonObject, "friends[0].name")
应该返回 "Paul"
请注意,此 JSON 只是一个示例,jsonObject
没有预定义结构,可以表示任何有效的 json。
我编写了第一个版本来实现前两种情况,但是处理数组和多级数组 "foo[0][0].bar"
给这个函数带来了很多复杂性。
最佳答案
JSONPath standard Stefan Goessner 涵盖了更复杂的语法,但它也处理“经典 javascript”JSON 路径语法。
使用 JayWay's implementation for Java , 回答这个问题很简单:
public String getAttribute(JSONObject json, String path) {
return JsonPath.read(json.toString(), path);
}
关于java - 如何从 JSONObject 的路径中获取嵌套值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40783386/
我是一名优秀的程序员,十分优秀!