如何使用 JSON 查询交叉引用属性
How to cross reference attributes with JSON Query
考虑关注 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]
谁能告诉我正确的查询是什么。
阿图尔
在您的过滤器表达式中,您需要使用 $$
来引用您相对于文档根目录的 mid
属性。使用 $
它将尝试相对于 measurements
数组找到它。
myroot.measurements[measurementID = $$.myroot.mid].Measurement
考虑关注 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]
谁能告诉我正确的查询是什么。
阿图尔
在您的过滤器表达式中,您需要使用 $$
来引用您相对于文档根目录的 mid
属性。使用 $
它将尝试相对于 measurements
数组找到它。
myroot.measurements[measurementID = $$.myroot.mid].Measurement