【发布时间】:2021-11-30 10:53:07
【问题描述】:
我有这个 jq 过滤器和输入:
( ._birthDate.extension[0] | .url, ( .extension[0] | .url, .valueString ), ( .extension[1] | .url, .valueString ) )
{
"_birthDate":{
"extension":[
{
"url":"http://catsalut.gencat.cat/fhir/StructureDefinition/patient-dataBirhtDeath",
"extension":[
{
"url":"country",
"valueString":"724"
},
{
"url":"state",
"valueString":"08"
}
]
}
]
}
}
...产生以下输出:
"http://catsalut.gencat.cat/fhir/StructureDefinition/patient-dataBirhtDeath"
"country"
"724"
"state"
"08"
我想重构过滤器:
( ._birthDate.extension[0] | .url, ( .extension[:2] | .url, .valueString ) )
…但我收到以下错误:
jq: error (at :18): Cannot index array with string "url"
看到这个demo。
【问题讨论】:
-
请在此处粘贴 JSON,而不是链接到外部站点。另外,您是否希望获得与第一种情况相同的输出?
-
表达式
.extension[:2]生成一个数组,而您期望数组元素。因此,只需迭代元素即可:.extension[:2][] -
@choroba。我在帖子中添加了 json。是的,我期待相同的输出。
标签: jq