【问题标题】:Reformat JSON key/value pair to a colon separated format using jq [duplicate]使用 jq 将 JSON 键/值对重新格式化为冒号分隔的格式 [重复]
【发布时间】:2021-01-29 20:41:52
【问题描述】:

我是jq的新手,我想转换以下数据:

{
  "host1": "10.1.2.3" ,
  "host2":  "10.1.2.2" ,
  "host3": "10.1.18.1"
}

转成以下格式:

host1 : 10.1.2.3
host2 : 10.1.2.2
host3 : 10.1.18.1

【问题讨论】:

    标签: jq


    【解决方案1】:

    替代版本,不存在于 cmets 中链接的可能重复问题中。

    jq -r 'keys_unsorted[] as $k | [ $k, .[$k] ] | join(" : ")' 
    

    将键存储在$k中并获取与之关联的值,并将结果放入数组[..]并通过:连接数组元素

    【讨论】:

      【解决方案2】:

      将对象转换为带有to_entries 的关联列表,然后使用插值构造所需的字符串。 -r 选项生成原始文本,而不是 JSON 编码的字符串。

      $ jq -r 'to_entries[] | "\(.key) : \(.value)"' tmp.json
      host1 : 10.1.2.3
      host2 : 10.1.2.2
      host3 : 10.1.18.1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-06
        相关资源
        最近更新 更多