program story

Postgres : json 문자열을 텍스트로 변환하는 방법은 무엇입니까?

inputbox 2020. 10. 21. 08:01
반응형

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을 반환합니다.


9.4.4에서 #>>연산자를 사용하면 나를 위해 작동합니다.

select to_json('test'::text) #>> '{}';

테이블 열과 함께 사용하려면 :

select jsoncol #>> '{}' from mytable;

이 작업을 수행하는 쉬운 방법 :

SELECT  ('[' || to_json('Some "text"'::TEXT) || ']')::json ->> 0;

json 문자열을 json 목록으로 변환하십시오.


이 질문 / 솔루션은 또 다른 질문을 생성합니다. PostgreSQL 개발자를위한 매니페스트 : JSON 문자열SQL 텍스트
캐스팅하는 데 따옴표가 필요한 이유는 무엇 입니까?
오, 약간의 딜레마가 있습니다 ... 사용자에게 선호하는 것을 물어 보는 것은 어떨까요?

SQL에서 char (N)을 캐스팅 하면 따옴표없이 예상 텍스트생성됩니다 . 임베디드 언어 또는 드라이버에서 SQL 텍스트캐스팅 하면 따옴표가없는 예상 문자열 데이터 유형이 생성되고 , 문자열을 캐스팅 하면 따옴표가없는 예상 SQL 텍스트생성됩니다 . 보편적 인 예상 동작입니다.

참고 URL : https://stackoverflow.com/questions/27215216/postgres-how-to-convert-a-json-string-to-text

반응형