2014-11-18 1 views
2

문자열에 json 객체의 배열을 생성하는 plpgsql 스크립트를 작성했지만 해당 문자열이있는 변수를 전달하는 to_json() 메소드를 사용한 후 결과를 반환합니다 이것은 doublequoted이며 모든 doublequote 문자도 이스케이프됩니다. 하지만 그 문자열이 그대로 필요합니다.postgresql to_json() 함수가 모든 큰 따옴표 문자를 이스케이프 처리합니다.

는 jsonResult 변수

초기 함유량은 :

[{ "키"{04949429911, "코드": "400"} "값": "20000.00"}, { "키"{ "InsuranceNumber": "04949429911", "코드": "403"}, "값": "10000.00"}, ...]는

하지만 to_json 후 (

)는 다음과 같습니다

"{{\"key \ ": {04949429911, \"코드 \ ": \"400 \ "}, \"value \ ": \"20000.00 \ "}, {\"key \ InsuranceNumber \ ": \"04949429911 \ ", \"코드 \ ": \ "403 \"}, \ "값 \"\ "10000.00 \"} ...] "

이 모든 것이 jsonResult의 breakes에 저장되어있는 장소 :

UPDATE factor_value SET params = to_json(jsonResult) WHERE id = _id; 

무엇 오전 내가 잘못하고있어? 그 밖에

+0

나는 그것을 얻지 않는다. 초기 변수에는 * json이 이미 있습니다. 왜'to_json()'을 호출할까요? – mabi

+0

내 초기 jsonResult 변수는 varchar 유형이며 여러 연결로 만들어 지므로 JSON 유형의 열에 삽입해야합니다. 죄송합니다. 언급하지 않았습니다. –

답변

1

This answer 포인트 단순히 json에 캐스팅이 충분해야합니다

UPDATE factor_value SET params = jsonResult::json WHERE id = _id; 

이상한 탈출 당신이 볼 이미 유효한 JSON을 가지고 실현되지 PostgreSQL을하는 아마도 당신의 varchar 단지 일반 자바 스크립트로 변환됩니다/JSON 문자열.

+0

예, 이미 그렇게하려고했습니다. 아무 일도 일어나지 않습니다 ... 내용을 확인하기 위해'raise notice '를 사용했는데 아무 것도 발생시키지 않았습니다 ... –

+0

저장하려고하는'jsonResult' 변수의 전체 내용입니다 :'주의 : qwe, [{ "key" { "key": ""InsuranceNumber ":"04949429911 ","코드 ":"403 "},"value ":"{0} ","코드 ":"400 "}, { "insuranceNumber": "05548560177", "코드": "400"}, "값": "20000.00"}, { "key": { "InsuranceNumber": "05548560177" "코드": "403"}, "값": "10000.00"}]' –

+0

오 마이 ... 첫 번째 '키'에 오류가 있습니다 ... –

관련 문제