2014-12-10 3 views
1

에 객체를 직렬화하는 동안 사용자 정의 따옴표의 탈출 :. 나는 2로 따옴표를 탈출 할 잭슨 : 백 슬래시 큰 따옴표를 이스케이프 기본 잭슨 JSON

{"title": "Testing \"double quotes\""} 

처럼 \ " 은 그래서 JSON 개체 보인다 백 슬래시 : \\ " 이처럼

{"title": "Testing \\"double quotes\\""} 

큰 따옴표를 사용하여 잭슨 직렬화 전략을 사용자 정의하는 방법은 무엇입니까?

+1

String invalid = mapper.writeValueAsString(object).replace("\\", "\\\\"); 
: 당신은 멤버 이름에 역전 상선이 없다고 가정하면, 실제 문자열 값을 출력 한 후 그것을 단지 수 . –

+0

나중에이 json을 처리합니다. 그러나이 단계에서 나는 틀린 것을 만들어야 만합니다. – kali

답변

3

이렇게하면 유효하지 않은 JSON이 생성되므로 Jackson이 도움을주지 않을 것입니다.

가 이 가 유효 JSON 당신이 뭔가를 생산하려면 잭슨과 같은 JSON 시리얼 라이저를 사용하지 마십시오 아니다
+0

그래서 원하는대로 json을 생성하도록 jackson을 구성 할 방법이 없습니까? – kali

+0

나는 네가 할 수있을 것이라고 생각하지 않는다. 앞에서 말했듯이, 생성하려는 JSON은 유효하지 않습니다. 대신 '\'를 이스케이프 처리 했으므로 문자열 내부의 인용 부호는 이스케이프 처리되지 않으므로 유효한 json의 다음 문자는 '}', ']'또는 ','이어야하지만 'd'를 갖습니다. 어쨌든 왜 더블 ''을 원하니? –

+0

대답 해 주셔서 감사합니다, Aaryn. 내가 사용하는 템플릿 엔진 때문에 '\'을 두 번 만들려고했습니다. 사용자 정의 작성자가 모델을 템플릿으로 렌더링하는 동안 '' '을 모두 이스케이프 처리하므로'\ "는 '\\"'가됩니다. – kali