在单次获取中访问嵌套的json数据? [英] Access nested json data in single get?
问题描述
我正在尝试从json对象中获取一个值.我将如何获得第三级json对象:
json格式如下:
feedString = {"level1":[{"level2":{"level3":{"valueIWant":10}}}]}
代码是:
JSONObject jsonFeed = new JSONObject(feedString);
jsonFeed.get("level1.level2.level3.valueIWant");
我可以一次获得嵌套的关卡吗?我的钥匙应该是什么样?
您可以给 JSONiJ(Java中的JSON)它是 JSONPath 的Java版本,基本上将XPath语法(的一部分)映射到JSON对象上. /p>
另外,请参见此SO问题以获得其他一些想法;看起来 json-path 具有Java版本,并使用点符号. /p>
另一种选择是在JSONObjects和诸如MVEL或OGNL之类的东西之间建立EL桥,这将为您提供更熟悉的点表示法. (我以为有MVEL/JSON桥,但现在找不到.)
I am trying to trying to get a value out of a json object. How would I get a third level json object:
json format looks like:
feedString = {"level1":[{"level2":{"level3":{"valueIWant":10}}}]}
Code is:
JSONObject jsonFeed = new JSONObject(feedString);
jsonFeed.get("level1.level2.level3.valueIWant");
Can I get nested levels in one get? What should my key look like?
You could give JSONiJ (JSON in Java) a shot; it's a Java version of JSONPath and basically maps (a subset of) XPath syntax onto JSON objects.
Also, see this SO question for some other ideas; it looks like json-path has a Java version, and uses dot notation.
The other option is to build an EL bridge between JSONObjects and something like MVEL or OGNL, which would give you the more-familiar dot notation. (I thought there was an MVEL/JSON bridge, but can't find it now.)
这篇关于在单次获取中访问嵌套的json数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!