質問編集履歴

1 「追加補足」を追記しました。

nitakaho

nitakaho score 14

2019/05/08 08:43  投稿

jqコマンドで親子関係にあるオブジェクトを結合する方法はありますでしょうか
下記のような親子関係にあるJSONオブジェクトをjqコマンドで結合することは可能でしょうか?
可能でしたら、コマンドをご教示いただきければと思います。
 
**追加補足**  
jpコマンドのみでの実現が不可能であれば、各オブジェクトの整形やシェルスクリプト等の利用を含めて、実現可能でしょうか?  
###### 親オブジェクト(parents.json)
```json
{
 "parent": [
   {
     "id": 1,
     "name": "parent-a"
   },
   {
     "id": 2,
     "name": "parent-b"
   },
   {
     "id": 3,
     "name": "parent-c"
   }
 ]
}
```
###### 子オブジェクト(child.json)
```json
{
 "child": {
   "id": 1,
   "name": "child-x",
   "parent-id": 1
 }
}
```
###### 親子結合オブジェクト(parents-children.json)
上記のオブジェクトを結合して下記のようなオブジェクトを生成したいです。
```json
{
 "parent": [
   {
     "id": 1,
     "name": "parent-a",
     "child": [
       {
         "id": 1,
         "name": "child-x"
       }
     ]
   },
   {
     "id": 2,
     "name": "parent-b"
   },
   {
     "id": 3,
     "name": "parent-c"
   }
 ]
}
```
  • Linux

    5970 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • JSON

    2187 questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

  • コマンド

    616 questions

    コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る