如何使用jq将多个json对象与分隔符逗号连接在一起

Ele*_*nor 2 bash json jq

这是我的数据:

{
  "ReferringUrl": "N",
  "OpenAccess": "0",
  "ItmId": "1694738780"
}
{
  "ReferringUrl": "L",
  "OpenAccess": "1",
  "ItmId": "1347809133"
}
Run Code Online (Sandbox Code Playgroud)

我希望它是这样的:

[
 {
  "ReferringUrl": "N",
  "OpenAccess": "0",
  "ItmId": "1694738780"
 },
 {
   "ReferringUrl": "L",
   "OpenAccess": "1",
   "ItmId": "1347809133"
 }
]
Run Code Online (Sandbox Code Playgroud)

如何使用jq库制作它?我用bash.谢谢!:)

pea*_*eak 7

假设JSON对象的序列在名为input.json的文件中,只需"啜饮"它:

jq -s . input.json
Run Code Online (Sandbox Code Playgroud)

如果对象分布在多个文件上,比如输入*.json,则可以运行:jq -s.输入*以.json

处理无效的JSON

如果最初显示的"物"(即没有严格有效的JSON),那么你可以使用一个命令行工具,例如any-json,json5或者hjson将它们在时间转换成JSON,一个.如果每个文件有多个准JSON对象,那么您可以使用csplitawk分割文件.

或者,如果对象遵循示例中建立的模式,则可以使用GNU sed:sed -z's /,(\n})/\1/g'