Java 使用JsonPath-Jayway检索JSON元素

Java 使用JsonPath-Jayway检索JSON元素,java,json,jsonpath,jayway,Java,Json,Jsonpath,Jayway,我有一个问题。我想获取pin码where street==“abc strt”。 我正在使用Jaway来实现这一点。 { "studentId": "10001", "studentSection": "A", "address": [ { "street": "abc strt.", "pincode&

我有一个问题。我想获取pin码where street==“abc strt”。
我正在使用Jaway来实现这一点。

{
  "studentId": "10001",
  "studentSection": "A",
  "address": [
    {
      "street": "abc strt.",
      "pincode": "00000000"
    },
    {
      "street": "xzy strt.",
      "pincode": "1111111"
    },
    {
      "street": "678 strt.",
      "pincode": "8765"
    },
    {
      "street": "ity strt.",
      "pincode": "234567"
    }
  ]
}
List=result=JsonPath.read(json,“$.['address'].[?@.street=='abc strt.].pincode”);
JayWay XPath:
$.[address']..?@.street=='abc strt.].pincode
,它将返回
列表

上面的查询将始终返回单个值,但由于返回类型为
List
,因此我必须使用值为
List.get(0)


是否有方法返回字符串而不是列表??

另外,我还有10个查询,必须在同一个JSON上执行。我应该查询一次并使用结果,还是可以查询10次并使用结果。做这件事的首选方法是什么

Jayway JsonPath是Stefan Goessner JsonPath实现的Java端口

根据

请注意,jsonPath的返回值是一个数组,也是一个有效的JSON结构。因此,您可能希望再次将jsonPath应用于结果结构,或者使用您最喜欢的数组方法之一作为排序

根据,

Jayway JsonPath是Stefan Goessner JsonPath实现的Java端口

根据

请注意,jsonPath的返回值是一个数组,也是一个有效的JSON结构。因此,您可能希望再次将jsonPath应用于结果结构,或者使用您最喜欢的数组方法之一作为排序


谢谢你的回答。我还有一个疑问,是多次查询json,还是只查询一次,然后使用结果,这是一种好的做法。例如,与上面的查询类似,我还有10个查询。我应该把它们结合起来,还是单独查询在性能方面也很好?我不完全确定性能,可能是你可以尝试调用组合查询n次,调用10个不同的查询,每次也调用n次,并测量次数。谢谢你的回答。我还有一个疑问,是多次查询json,还是只查询一次,然后使用结果,这是一种好的做法。例如,与上面的查询类似,我还有10个查询。我应该把它们结合起来,还是单独查询在性能方面也很好?我不完全确定性能,可能是你可以给它一个尝试-调用组合查询n次,调用10个不同的查询,每次也调用n次,并测量次数。
List<String> = result = JsonPath.read(json, "$.['address'].[?@.street == 'abc strt.'].pincode");