フラット化された入れ子になったjsonオブジェクトデータをフォーマットするunixコマンド

フラット化された入れ子になったjsonオブジェクトデータをフォーマットするunixコマンド

入力データ型jsonの例

data: {
   div1: {
      name: "some name",
      age: number,
      address_1: "some address",
      items: {
         item_x1: "some data",
         ..
         ..
      }
   }
   ..
   ..
}

予想される結果はflatten json形式でなければなりません。

{ "data.div1.name":"some name",..., "data.div1.items.item_x1":"some data",...},
..
..
{ "data.divN.name":"some name",... }

フィールドが不明かもしれません!したがって、フィルタリングコマンドを有効にする必要はありません!

UNIXベースのコマンドに関するアイデアはありますか?

ベストアンサー1

見るグローエン。リンクされたページから:

JSONをgrepableにしてください!

gron必要なものをより簡単に把握し、それに対する絶対「パス」を確認できるように、JSONを個々の割り当てに変換します。大量のJSONを返しますが、正しく文書化されていないAPIナビゲーションを簡素化します。

▶ gron "https://api.github.com/repos/tomnomnom/gron/commits?per_page=1" | fgrep "commit.author"
json[0].commit.author = {};
json[0].commit.author.date = "2016-07-02T10:51:21Z";
json[0].commit.author.email = "[email protected]";
json[0].commit.author.name = "Tom Hudson";

gronは逆方向にも機能し、フィルタリングされたデータをJSONに戻すことができます。

▶ gron "https://api.github.com/repos/tomnomnom/gron/commits?per_page=1" | fgrep "commit.author" | gron --ungron
[
  {
    "commit": {
      "author": {
        "date": "2016-07-02T10:51:21Z",
        "email": "[email protected]",
        "name": "Tom Hudson"
      }
    }
  }
]

おすすめ記事