【问题标题】:JSON path expressionJSON路径表达式
【发布时间】:2014-11-20 18:06:25
【问题描述】:

我有以下 JSON 负载:

{
    "inputs" : [{
            "attributeX" : [{
                    "id1" : "value11",
                }, {
                    "id1" : "value12",
                }
            ],
            "attributeY" : [{
                    "id" : "valueY1",
                    "attributeZ" : [{
                            "pathZ" : "/Path1/Path2[00163E038C2E1EE299C1C394370BCFA0]/Description",
                            "value" : "valueXYZ",
                        }
                    ],
                }
            ]
        }
    ]
}

我想写一个 JSON 路径表达式,以便获取 pathZ 的值。但是 [] 中的部分值是动态的。是否有在以下 JSON 路径表达式中指定通配符?

$.inputs.[*].attributeY.[*].attributeZ[?(@.pathZ=='/Path1/Path2**<HOW_CAN_I_SPECIFY_A_WILDCARD_HERE>**/Description')].value

【问题讨论】:

    标签: xpath jsonpath


    【解决方案1】:

    您可以在 JSON Path 表达式中使用正则表达式来匹配 PathZ 值的开始和结束,而不匹配中间。这就是表达式的样子:

    $.inputs.[*].attributeY.[*].attributeZ[?(new RegExp('^/Path1/Path2.*/Description$').test(@.pathZ))].value
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      相关资源
      最近更新 更多