0

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

4

1 回答 1

0
  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常见问题not-quite-valid- 搜索.

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

  5. 在您给出的示例中,您可以使用jqsed甚至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"
      }
    }
    
于 2018-01-18T03:44:56.323 回答