Zum Inhalt springen

Wendet mit einem Lambda-Ausdruck eine Transformation auf jeden Schlüssel in einem JSON-Objekt an.

JSON_MAP_TRANSFORM_KEYS(<json_object>, (<key>, <value>) -> <key_transformation>)

Gibt ein JSON-Objekt mit denselben Werten wie das JSON-Eingabeobjekt zurück, dessen Schlüssel jedoch gemäß der angegebenen Lambda-Transformation geändert wurden.

Dieses Beispiel hängt „_v1“ an jeden Schlüssel an und erstellt so ein neues JSON-Objekt mit geänderten Schlüsseln:

SELECT JSON_MAP_TRANSFORM_KEYS('{"name":"John", "role":"admin"}'::VARIANT, (k, v) -> CONCAT(k, '_v1')) AS versioned_metadata;
┌──────────────────────────────────────┐
│ versioned_metadata │
├──────────────────────────────────────┤
│ {"name_v1":"John","role_v1":"admin"} │
└──────────────────────────────────────┘