0

我需要为给定的 json 结构找到 json 路径

{
  "name": "ninja",
  "contry": "India",
  "Account": [
    {
      "id": "123",
      "orgId": 223,
      "investment": [
        {
          "invetmentId": "111",
          "name": "India tech",
          "performance": [
            {
              "id": "123",
              "performanceSet": [
                {
                  "amount": "210",
                  "currency": "YEN"
                },
                {
                  "amount": "231",
                  "currency": "USD"
                },
                {
                  "amount": "233",
                  "currency": "USD"
                },
                {
                  "amount": "250",
                  "currency": "IND"
                }
              ],
              "loyal": "250"
            }
          ]
        }
      ]
    }
  ]
}

在这里,我需要从 performanceSet 中获取货币为 USD 的金额,并且只会返回它第一次出现这种值的金额?

它应该返回

[
   "231"
]
4

2 回答 2

1

我认为使用 jsonpath 是不可能的。

您可以使用以下 jsonpath。

$.Account[0].investment[0].performance[0].performanceSet[?(@.currency=='USD')]

这会给你

[
  {
    "amount": "231",
    "currency": "USD"
  },
  {
    "amount": "233",
    "currency": "USD"
  }
]

在这里,您可以以编程方式选择第一个元素并进一步阅读amount.

于 2020-08-13T12:06:35.483 回答
0

您可以尝试使用 js2xml 将 json 转换为 XML,然后再使用 xpath。XPath 更强大

于 2020-08-13T12:19:14.280 回答