如何使用 jq 漂亮打印单引号 JSON 文件
how to prettyprint a single-quoted JSON file using jq
{ 'abc': { 'name': 'John', 'address': 'USA' }, 'xyz': { 'name' : 'Robert', 'address': 'Canada' } }
样本无效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 常见问题解答(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"
}
}
{ 'abc': { 'name': 'John', 'address': 'USA' }, 'xyz': { 'name' : 'Robert', 'address': 'Canada' } }
样本无效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 常见问题解答(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" } }