我有如下的JSON字符串
String jtext= {"data":{"key1":"hello","key2":{"key21": [{"key211":"val1","key212":"val2","key213":"val3},{......},{.....}……..]}}
我只对
key21
中的数组感兴趣。是否可以直接将数组放入key21
中?我已经尝试了下面的代码,并且工作正常
JsonElement elementKey = new JsonParser().parse(jtext);
JsonObject eleObject = elementKey.getAsJsonObject();
JsonObject dataobj = eleObject.getAsJsonObject("data");
JsonObject key2= elementKey.getAsJsonObject("key2");
JsonArray jarray = data1.getAsJsonArray("key21");
那么是否可以直接渗透到JSON对象中以在Gson中的
key21
中获得数组?我不希望从父级的整个链接进入所需的元素,或者可能是使LOC最小化的解决方案。 最佳答案
您要的是几乎完全符合JSON Path要求的实现here。它具有Gson支持,但被标记为实验性的。如果您只对基于键的导航感兴趣,而无需支持处理数组索引等,则可以使用这个明显更简单(但更受限制)的选项,如StackOverflow上讨论的那样,作者在其中实现了递归路径评估方法根据点指定的路径沿元素树走:Using Gson with a path
包括这种方法将为您提供一线解决方案。