実現したいこと
大まかな流れは以下になります。
- object_id をキーにして、DBに登録されているjson1を取り出す
- 共通のobject_idを持つjson2のobject_data.data_idがjson1にあれば配列を更新したい
- 共通のobject_idを持つjson2の、object_data.data_idがjson1に無ければ追加したい
例1) object_data.data_idがある時
json1
1{ object_id: '1', 2 object_data: 3 [ { data_id: '1', 4 data_type: 'A' 5 enabled: true }, 6 { data_id: '2', 7 data_type: 'B' 8 enabled: true } 9 ], 10 created_at: '2021-03-25', 11 created_by: '太郎' } 12
json2
1{ object_id: '1', 2 object_data: 3 [ { data_id: '1', 4 data_type: 'B' 5 enabled: false } ], 6 created_at: '2021-03-25', 7 created_by: '太郎' } 8
↓ 期待する実行結果
json1
1{ object_id: '1', 2 object_data: 3 [ { data_id: '1', 4 data_type: 'B' 5 enabled: false } , 6 { data_id: '2', 7 data_type: 'B' 8 enabled: true } 9 ], 10 created_at: '2021-03-25', 11 created_by: '太郎' } 12
例2) object_data.data_idが無い時
json1
1{ object_id: '1', 2 object_data: 3 [ { data_id: '1', 4 data_type: 'A' 5 enabled: true }, 6 { data_id: '2', 7 data_type: 'B' 8 enabled: true } 9 ], 10 created_at: '2021-03-25', 11 created_by: '太郎' } 12
json2
1{ object_id: '1', 2 object_data: 3 [ { data_id: '3', 4 data_type: 'C' 5 enabled: true } ], 6 created_at: '2021-03-25', 7 created_by: '太郎' } 8
↓ 期待する実行結果
json1
1{ object_id: '1', 2 object_data: 3 [ { data_id: '1', 4 data_type: 'A' 5 enabled: true }, 6 { data_id: '2', 7 data_type: 'B' 8 enabled: true }, 9 { data_id: '3', 10 data_type: 'C' 11 enabled: true } 12 ], 13 created_at: '2021-03-25', 14 created_by: '太郎' } 15
試したこと
json1
1{ object_id: '1', 2 object_data: 3 [ { data_id: '1', 4 data_type: 'A' 5 enabled: true }, 6 { data_id: '2', 7 data_type: 'B' 8 enabled: true } 9 ], 10 created_at: '2021-03-25', 11 created_by: '太郎' } 12
json2
1{ object_id: '1', 2 object_data: 3 [ { data_id: '1', 4 data_type: 'C' 5 enabled: false } ], 6 created_at: '2021-03-25', 7 created_by: '太郎' } 8
javascript
1 const aJSON = JSON.stringify(json1.object_data); 2 const bJSON = JSON.stringify(json2.object_data); 3 if (aJSON === bJSON){ 4 Object.assign(json1, json2); 5 } else { 6 json1.object_data.push(...json2.object_data); 7 }
↓ 実行結果
json1
1{ object_id: '1', 2 object_data: 3 [ { data_id: '1', 4 data_type: 'A' 5 enabled: true }, 6 { data_id: '2', 7 data_type: 'B' 8 enabled: true }, 9 { data_id: '1', 10 data_type: 'C' 11 enabled: false } 12 ] 13 ], 14 created_at: '2021-03-25', 15 created_by: '太郎'} 16
このように、object_id = 1を更新したいところが、追加になります。
aJSON === bJSON
としているのでそうなってしまうことは分かるのですが、
どのようにすれば、json1に含まれていないdata_idが来た時だけ、連結するという動きにできるでしょうか。
ご教授、お願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/29 01:07