将 JSON 文件转换为将每组大括号放在一行中
Convert JSON file to have each set of curly brackets on a single line
我有一个像这样的简单 JSON 文件:
{
"user_id": 123,
"value": 99
},
{
"user_id": 122,
"value": 100
}
但我需要它看起来像这样:
{"user_id": 123, "value": 99}
{"user_id": 122, "value": 100}
基本上每一组大括号都应该独占一行。我希望 jq 会很简单,但我对它很陌生。提前谢谢你。
如果去掉两个对象之间的逗号(肯定是无效的JSON),那么就用jq的--compact-output
(或-c
)选项和identity filter .
.
jq --compact-output '.'
{"user_id":123,"value":99}
{"user_id":122,"value":100}
jq
可用于将输入(作为原始文本)包装在 [...]
内,结果可由其内置 fromjson
过滤器解析。再次将生成的数组拆分为单独的对象,并使用 -c
在一行上输出每个对象。
$ cat old.txt
{
"user_id": 123,
"value": 99
},
{
"user_id": 122,
"value": 100
}
$ jq -csR '"[\(.)]" | fromjson |.[]' old.txt
{"user_id":123,"value":99}
{"user_id":122,"value":100}
我有一个像这样的简单 JSON 文件:
{
"user_id": 123,
"value": 99
},
{
"user_id": 122,
"value": 100
}
但我需要它看起来像这样:
{"user_id": 123, "value": 99}
{"user_id": 122, "value": 100}
基本上每一组大括号都应该独占一行。我希望 jq 会很简单,但我对它很陌生。提前谢谢你。
如果去掉两个对象之间的逗号(肯定是无效的JSON),那么就用jq的--compact-output
(或-c
)选项和identity filter .
.
jq --compact-output '.'
{"user_id":123,"value":99}
{"user_id":122,"value":100}
jq
可用于将输入(作为原始文本)包装在 [...]
内,结果可由其内置 fromjson
过滤器解析。再次将生成的数组拆分为单独的对象,并使用 -c
在一行上输出每个对象。
$ cat old.txt
{
"user_id": 123,
"value": 99
},
{
"user_id": 122,
"value": 100
}
$ jq -csR '"[\(.)]" | fromjson |.[]' old.txt
{"user_id":123,"value":99}
{"user_id":122,"value":100}