Sintaxis de entrada y salida de JSON
Información sobre la sintaxis de entrada y salida de JSON.
La sintaxis de entrada/salida para los tipos de datos JSON se especifica en la RFC 7159.
Ejemplos de expresiones
json y jsonb válidas:- Valor primitivo/escalar simple
Los valores primitivos pueden ser números, cadenas entrecomilladas, true, false o null.
SELECT '5'::json; - Matriz de cero o más elementos (no hace falta que los elementos sean del mismo
tipo)
SELECT '[1, 2, "foo", null]'::json; - Objeto que contiene pares de claves y valoresTenga en cuenta que las claves de objeto siempre deben estar entre comillas.
SELECT '{"bar": "baz", "balance": 7.77, "active": false}'::json; - Las matrices y los objetos se pueden anidar arbitrariamente
SELECT '{"foo": [true, "bar"], "tags": {"a": 1, "b": null}}'::json;
Cuando se introduce un valor
JSON y luego se imprime sin ningún proceso adicional, json genera el mismo texto que se ha especificado. jsonb no conserva detalles semánticamente insignificantes (por ejemplo, espacios en blanco).SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::json;
json
-------------------------------------------------
{"bar": "baz", "balance": 7.77, "active":false}
(1 row)
SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::jsonb;
jsonb
--------------------------------------------------
{"bar": "baz", "active": false, "balance": 7.77}
(1 row)
Nota: En '
jsonb' , los números se imprimen según el comportamiento del tipo numérico subyacente. Los números especificados con la notación E se imprimirán sin él. jsonb conserva los ceros fraccionarios finales a pesar de que son semánticamente insignificantes para fines como, por ejemplo, las comprobaciones de igualdad.Ejemplo:
SELECT '{"reading": 1.230e-5}'::json, '{"reading": 1.230e-5}'::jsonb;
json | jsonb
-----------------------+-------------------------
{"reading": 1.230e-5} | {"reading": 0.00001230}
(1 row)