【问题标题】:Json extract Array property with index using JQJson使用JQ提取带有索引的数组属性
【发布时间】:2022-08-04 03:24:58
【问题描述】:

我得到了一个 Json,它基本上是一个数组,但格式很奇怪,我无法更改。 有什么方法可以通过搜索名称来获取 JQ 的 url,就像这样?

{
    \"servers\": {
        \"servers[0].name\" = \"abc\",
        \"servers[0].url\" = \"www.abc.test.com\",
        \"servers[1].name\" = \"xyz\",
        \"servers[1].url\" = \"www.xyz.test.com\"
    }
}
jq -r  \'.servers | select(.name==\"abc\") | .url\'

 
  • 如果等号= 是冒号:,它至少是有效的JSON
  • 您需要获取上游数据源来修复“JSON”的生成方式。

标签: json bash jq


【解决方案1】:

假设“=”可以天真地更改为“:”:

sed 's/ = /: /' | jq '
  .servers
  | keys_unsorted[] as $k
  | select(.[$k] == "abc")
  | ($k | sub("[.]name"; ".url")) as $k
  | .[$k]
'

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多