【问题标题】:one json object per line with jq from a large json file来自大型 json 文件的 jq 每行一个 json 对象
【发布时间】:2021-12-24 12:17:13
【问题描述】:

这是我的 json 文件:

[
  {
    "name": "1"
  },
  {
    "name": "2"
  },
  {
    "name": "3"
  },
  {
    "name": "4"
  }
]

我想逐行获取文件中的所有对象:

{"name":"1"}
{"name":"2"}
{"name":"3"}
{"name":"4"}

我的文件很大,我正在使用流选项。

到目前为止,这是我的尝试:

jq --stream -c '.[]' car.json > result.json

但它给了我:

[0,"name"]
"1"
[1,"name"]
"2"

【问题讨论】:

  • 只需删除--stream(例如,使用紧凑选项就足够了)
  • @BarbarosÖzhan 我没有足够的内存来删除 --stream 选项

标签: json jq


【解决方案1】:

jq FAQ 涵盖了此主题。对于您描述的情况,您可能可以使用那里给出的两种可能性中更简单的一种:

jq -cn --stream 'fromstream(1|truncate_stream(inputs))'

【讨论】:

    猜你喜欢
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    相关资源
    最近更新 更多