json - example - Elimine las comillas dobles de la devolución de una función en PostgreSQL
postgresql json type (1)
El operador ->
devuelve un resultado json
. Convertirlo en text
deja en una representación de json.
El operador ->>
devuelve un resultado de text
. Usa eso en su lugar.
test=> SELECT ''{"car": "going"}''::jsonb -> ''car'';
?column?
----------
"going"
(1 row)
test=> SELECT ''{"car": "going"}''::jsonb ->> ''car'';
?column?
----------
going
(1 row)
Tengo la siguiente función en PostgreSQL
CREATE OR REPLACE FUNCTION public.translatejson(JSONB, TEXT)
RETURNS TEXT
AS
$BODY$
SELECT ($1->$2)::TEXT
$BODY$
LANGUAGE sql STABLE;
Cuando lo ejecuto recibo los valores entre comillas dobles. Por ejemplo:
SELECT id, translatejson("title", ''en-US'') AS "tname" FROM types."FuelTypes";
a cambio consigo una mesa como esta
-------------------
| id | tname |
-------------------
| 1 | "gasoline" |
| 2 | "diesel" |
-------------------
Los valores en la columna ''título'' están en formato JSON: {"en-US": "gasolina", "fr-FR": "esencia"}. ¿Cómo puedo omitir las comillas dobles para devolver solo la cadena del resultado?