一尘不染

将JSON文件拆分为单独的文件

json

我有一个很大的JSON文件,它是对象的对象,我想在对象键之后将其拆分成单独的文件名。是否可以使用jq或任何其他现成的工具来实现此目的?

原始JSON格式如下

{ "item1": {...}, "item2": {...}, ...}

鉴于此输入,我想生成文件item1.json,item2.json等。


阅读 228

收藏
2020-07-27

共1个答案

一尘不染

这应该给您一个开始:

for f in `cat input.json | jq -r 'keys[]'` ; do
  cat input.json | jq ".$f" > $f.json
done

或者当您坚持使用一些较卑鄙的语法时,似乎有些人更喜欢:

for f in $(jq -r 'keys[]') ; do
  jq ".[\"$f\"]" < input.json > "$f.json"
done < input.json
2020-07-27