【发布时间】:2018-01-18 03:19:58
【问题描述】:
{ 'abc': { 'name': 'John', 'address': 'USA' }, 'xyz': { 'name': 'Robert', 'address': 'Canada' } }
【问题讨论】:
标签: json jq pretty-print jsonlint
{ 'abc': { 'name': 'John', 'address': 'USA' }, 'xyz': { 'name': 'Robert', 'address': 'Canada' } }
【问题讨论】:
标签: json jq pretty-print jsonlint
示例不是有效的 JSON。
jq 可用于漂亮地打印有效的 JSON,尽管有一些重要的警告,主要是关于数字。例如:
$ jq . <<< '{ "abc": { "name": "John", "address": "USA" }, "xyz": { "name": "Robert", "address": "Canada" } }'
{
"abc": {
"name": "John",
"address": "USA"
},
"xyz": {
"name": "Robert",
"address": "Canada"
}
}
有关将不完全有效的 JSON 转换为 JSON 的信息,请参阅 jq FAQ - 搜索 not-quite-valid。
jq FAQ (jsonlint) 中上述参考部分中提到的至少一种工具不仅可以将单引号的准 JSON 转换为 JSON,还可以将其打印出来。
在您给出的示例中,您可以将 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"
}
}
【讨论】: