JSON路径提取

时间:2014-11-17 21:26:31

标签: json path extraction

我有JSON数据,其中有一个名为“References”的数组元素。 这个“References”数组还包含类似TypeName,Id和元素Called Attributes的元素,这些元素还包含名称和类型等元素。 TypeName的可能值是Employees,Offices,Hardware etc

"References": [
        {
          "TypeName": "Employees",
          "Attributes": {
            "Type": "9t59c6ghn1l4y81nvu7a",
            "Name": "WH-3",
                }
        },
        {
          "TypeName": "Hardware",
          "Attributes": {
            "Name": "rz2j8c85kbl3add5vmb5",
                      }
        },
        {
          "TypeName": "Organization",

          "Attributes": {
            "Type": "4qww1im1o6w4xm4ehlkm",
            "Name": "Training"
          }
        },
]

我想提取数组“References”的元素TypeName的路径。 例如:我想提取TypeName组织的路径,并进一步提取该TypeName的属性。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以轻松地提取组织属性,但是您的JSON不是有效的JSON,因此您需要先修复它,具体取决于您正在使用的解析器的宽容程度。整个文档需要在根目录下有一个对象或数组,并且在文档中某些对象的最后一个属性之后还有额外的逗号。这是一份固定文件:

{
    "References": [
        {
            "TypeName": "Employees",
            "Attributes": {
                "Type": "9t59c6ghn1l4y81nvu7a",
                "Name": "WH-3"
            }
        },
        {
            "TypeName": "Hardware",
            "Attributes": {
                "Name": "rz2j8c85kbl3add5vmb5"
            }
        },
        {
            "TypeName": "Organization",
            "Attributes": {
                "Type": "4qww1im1o6w4xm4ehlkm",
                "Name": "Training"
            }
        }
    ]
}

要获取组织属性,您可以使用以下JSON路径

$..References[?(@.TypeName=='Organization')].Attributes

我已使用在线JSON查询工具对此进行了测试:http://www.jsonquerytool.com/sample/jsonpathwhereselect