我得到了以下schema:
| id::UUID| payload::JSONB|
| --------------|--------------|
| 1| [{“编辑”:[{“type”:“A”,“value”:1 },{“type”:“B”,“值”:2 }] }]|
| 二|[{“编辑”:[{“type”:“A”,“value”:1 },{“type”:“A”,“value”:2 }] }]|
| 三|[{“编辑”:[{“type”:“B”,“value”:1 }] }]|
| 四个|[{“编辑”:[[] }]|
对于payload
的每个元素,我需要将value
更新为对象。该对象的类型略有不同:CASE type = A => value: { src: <prevVal> }
CASE type = B => value: { url: <prevVal> }
对于上面的例子,我期望得到:
| id::UUID| payload::JSONB|
| --------------|--------------|
| 1| [{“编辑”:[{“type”:“A”,“value”:{“src”:1 }},{“type”:“B”,“值”:{“url”:2 } }] }|
| 二|[{“编辑”:[{“type”:“A”,“value”:{“src”:1 }},{“type”:“A”,“value”:[2019 - 04 - 22]|
| 三|[{“编辑”:[{“type”:“B”,“value”:[1][2][3]|
| 四个|[{“编辑”:[[] }]|
1条答案
按热度按时间h43kikqp1#
首先展平
payload
阵列,然后用新的value
重建它。参见demo。
不相关,但JSON在您的示例中无效。