这是我的数据:
{
"ReferringUrl": "N",
"OpenAccess": "0",
"ItmId": "1694738780"
}
{
"ReferringUrl": "L",
"OpenAccess": "1",
"ItmId": "1347809133"
}
我希望它是这样的:
[
{
"ReferringUrl": "N",
"OpenAccess": "0",
"ItmId": "1694738780"
},
{
"ReferringUrl": "L",
"OpenAccess": "1",
"ItmId": "1347809133"
}
]
如何使用jq库制作它?我用bash。谢谢! :)
答案 0 :(得分:6)
假设JSON对象的序列在一个名为input.json的文件中,只需“啜饮”它:
jq -s . input.json
如果对象分布在多个文件上,比如输入* .json,则可以运行:jq -s。输入*上传.json
如果“对象”最初显示(即,严格来说不是JSON有效),那么您可以使用命令行工具,例如any-json
,json5
或{{1}将它们一次转换为JSON。如果每个文件有多个准JSON对象,那么您可以使用hjson
或csplit
来分割文件。
或者,如果对象遵循示例中建立的模式,则可以使用GNU sed:sed -z's /,(\ n})/ \ 1 / g'
答案 1 :(得分:-1)
如果无关的逗号始终在ItemId行上,请尝试
sed '1s/^/[/;/"ItemId":/s/,$//;$s/$/]/' file
我认为有一种方法可以让jq
在不预处理的情况下读取该输入,因此您也可以在预处理器中完成所有工作并跳过jq
。