【问题标题】:how to prettyprint a single-quoted JSON file using jq如何使用 jq 漂亮地打印单引号 JSON 文件
【发布时间】:2018-01-18 03:19:58
【问题描述】:

{ 'abc': { 'name': 'John', 'address': 'USA' }, 'xyz': { 'name': 'Robert', 'address': 'Canada' } }

【问题讨论】:

    标签: json jq pretty-print jsonlint


    【解决方案1】:
    1. 示例不是有效的 JSON。

    2. jq 可用于漂亮地打印有效的 JSON,尽管有一些重要的警告,主要是关于数字。例如:

      $ jq . <<< '{ "abc": { "name": "John", "address": "USA" }, "xyz": { "name": "Robert", "address": "Canada" } }'  
      {
        "abc": {
          "name": "John",
          "address": "USA"
        },
        "xyz": {
          "name": "Robert",
          "address": "Canada"
        }
      }
      
    3. 有关将不完全有效的 JSON 转换为 JSON 的信息,请参阅 jq FAQ - 搜索 not-quite-valid

    4. jq FAQ (jsonlint) 中上述参考部分中提到的至少一种工具不仅可以将单引号的准 JSON 转换为 JSON,还可以将其打印出来。

    5. 在您给出的示例中,您可以将 sed 甚至 tr 与 jq 结合使用:

      echo "{ 'abc': { 'name': 'John', 'address': 'USA' }, 'xyz': { 'name': 'Robert', 'address': 'Canada' } }" |
        tr "'" '"' | jq .
      {
        "abc": {
          "name": "John",
          "address": "USA"
        },
        "xyz": {
          "name": "Robert",
          "address": "Canada"
        }
      }
      

    【讨论】:

      猜你喜欢
      • 2012-10-08
      • 1970-01-01
      • 2013-10-03
      • 2011-08-05
      • 2015-07-03
      相关资源
      最近更新 更多