0

考虑遵循 JSON。

我想获得“Measurement”,使得“measurementID”等于“mid”节点的值。

 {
"myroot": {
    "name": "ABC",
    "nameAliases": [
        {
            "AliasName": "23123",
            "AliasNameTypeID": "test"
        }
    ],
    "nameTypeID": "test",
    "mid": "RR",
    "measurements": [
        {
            "Measurement": 2.62,  //-> This should be output of the JSON query
            "measurementID": "RR",
            "MeasurementPath": "demo",
            "measurementType": "TT",
            "UnitOfMeasure": "m"
        },
        
        {
            "Measurement": 40.62,
            "measurementID": "TR",
            "MeasurementPath": "demo",
            "measurementType": "T",
            "measurementUnitOfMeasure": "m"
        }
    ]
}  

此查询有效,但它具有硬编码值 'RR' $.myroot.measurements[measurementID = "RR"]

我想在查询中引用其他属性。我尝试了以下查询,但没有奏效

$.myroot.measurements[measurementID = $.**.mid]

有人可以告诉我正确的查询是什么。

阿图尔

4

1 回答 1

1

在您的过滤器表达式中,您需要使用相对于文档根目录$$来引用您的属性。mid使用$它将尝试相对于measurements数组找到它。

myroot.measurements[measurementID = $$.myroot.mid].Measurement

https://try.jsonata.org/pf5pt9MMj

于 2021-08-16T10:04:08.250 回答