如何获取给定需求的json路径?

问题描述

我需要找到给定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",{
                  "amount": "250","currency": "IND"
                }
              ],"loyal": "250"
            }
          ]
        }
      ]
    }
  ]
}

这里我需要从PerformanceSet中获取货币为美元的金额,并且只返回第一次出现该金额的金额?

它应该返回

[
   "231"
]

解决方法

我认为使用jsonpath不可能。

您可以使用以下jsonpath。

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

这会给你

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

您可以在此处以编程方式选择第一个元素,然后进一步阅读amount

,

您可以尝试使用js2xml将json转换为XML,然后在同一路径上使用xpath。 XPath功能更强大