1

我有一个下面的 JSON。我想在 street =='abc strt.' 的地方获取 pin 码。
我正在使用 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<String> = result = JsonPath.read(json, "$.['address'].[?@.street == 'abc strt.'].pincode");

JayWay XPath:, $.['address'].[?@.street == 'abc strt.'].pincode它正在返回List<String>
上述查询将始终返回单个值,但由于返回类型 as List<String>,我必须使用 value as list.get(0)


有没有办法返回字符串而不是列表?

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

1 回答 1

0

根据Jayway Jsonpath 文档

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

根据Stefan Goessner JsonPath 文档

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

于 2020-06-22T06:13:52.137 回答