PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

como faço para converter texto para jsonB


De acordo com a documentação do Postgres :

IMHO você está fornecendo uma string formatada em JSON, então você deve usar o primeiro método.
to_json('Fred said "Hi."'::text)  --> "Fred said \"Hi.\""

Se você tentar obter uma matriz de elemento usando to_json (texto), receberá o próximo erro:
select *
from jsonb_array_elements_text(to_jsonb('[{"field":15,"operator":0,"value":"1"},{"field":15,"operator":0,"value":"2"},55]'::text));

Mas se você lançou anteriormente para json:
select *
from jsonb_array_elements_text(to_jsonb('[{"field":15,"operator":0,"value":"1"},{"field":15,"operator":0,"value":"2"},55]'::json));

+--------------------------------------------+
|                    value                   |
+--------------------------------------------+
| {"field": 15, "value": "1", "operator": 0} |
+--------------------------------------------+
| {"field": 15, "value": "2", "operator": 0} |
+--------------------------------------------+
| 55                                         |
+--------------------------------------------+