【发布时间】:2021-08-15 17:05:40
【问题描述】:
我正在尝试使用 jmespath 来查询我的 json,并且我正在尝试访问更高级别的属性。
下面是我的 JSON:
{
"properties": {
"DefaultVMTypeID": "RT",
"VM": {
"measurements": [
{
"vm": 45.62,
"vmString": "45.62",
"vmID": "RT",
"vmPathID": "osdu",
"vmTypeID": "RT",
"vmUnitOfMeasureID": "m"
},
{
"vm": 65,
"vmString": "65",
"vmID": "MT",
"vmPathID": "sample",
"vmTypeID": "MT",
"vmUnitOfMeasureID": "m"
},
{
"vm": 32,
"vmString": "32",
"vmID": "MT",
"vmPathID": "osduschemas",
"vmTypeID": "MT",
"vmUnitOfMeasureID": "m"
},
{
"vm": 95,
"vmString": "95",
"vmID": "MT",
"vmPathID": "schema",
"vmTypeID": "MT"
}
]
}
}
}
我想获取 vmId 等于 DefaultVMTypeID 的所有测量值。
我尝试了以下查询: [properties.DefaultVerticalmeasurementTypeID, properties.Verticalmeasurements.measurements[?VerticalmeasurementTypeID]] | map(&[1].VerticalmeasurementTypeID==@[0], @)
但是在将 map 应用于数组时,@ 指的是数组的元素,而在 map 内部,我无法访问 DefaultVMTypeID。
我也尝试过转换对象的每个元素。
任何线索将不胜感激。
【问题讨论】:
标签: normalization jsonpath jmespath json-path-expression