Postgres:如何将json字符串转换为文本?

Json值可以包含一个字符串值。例如。:

postgres=# SELECT to_json('Some "text"'::TEXT);

to_json

-----------------

"Some \"text\""

如何提取该字符串作为postgres文本值?

::TEXT不起作用。它返回带引号的json,而不是原始字符串:

postgres=# SELECT to_json('Some "text"'::TEXT)::TEXT;

to_json

-----------------

"Some \"text\""

谢谢。

PS我正在使用PostgreSQL 9.3

回答:

PostgreSQL中没有办法解构标量JSON对象。因此,正如您所指出的,

select  length(to_json('Some "text"'::TEXT) ::TEXT);

是15

诀窍是将JSON转换为一个JSON元素的数组,然后使用提取该元素->>

select length( array_to_json(array[to_json('Some "text"'::TEXT)])->>0 );

将返回11。

以上是 Postgres:如何将json字符串转换为文本? 的全部内容, 来源链接: utcz.com/qa/429117.html

回到顶部