2009-06-14 2 views
3

내 JSON 응답이 보인다 :(JSON 응답) 같은

{rc: "200", test: "", user: "<div class='sub1'> 
       <div class='avatar'>      
        <a href='/blah'>blah</a><br /> 
        <strong>0</strong> 
       </div> 
       <div class='sl'> 
        <p> 
         you droppped the ball this time 
        </p> 
       </div> 
       <div class='clear'> 
       </div>       
      </div>"} 

업데이트 내가 키 값에 따옴표를 넣어 사용하려면 코드를 업데이트

, 여전히 아무튼 작동하지 않음 :

{"rc": "200", "m" : "", "o": "<div class='s1'> 
      <div class='avatar'>      
       <a href='\/asdf'>asdf<\/a><br \/> 
       <strong>0<\/strong> 
      <\/div> 
      <div class='sl'> 
       <p> 
        444444444 
       <\/p> 
      <\/div> 
      <div class='clear'> 
      <\/div>       
     <\/div>"} 
+0

"여전히 작동하지 않음"을 정의하십시오. –

+0

이 예에서는 아무것도 표시되지 않습니다. –

+0

가능한 중복 [jQuery에서 JSON 결과로 HTML을 반환합니다. 어떻게해야합니까?] (http://stackoverflow.com/questions/652997/in-jquery-i-am-returning-html- in-a-json-result-what-do-i-have-to-escape) – John

답변

3

최신 예제의 유효성을 검사하기 위해 jsonlint을 사용했으며 줄 바꿈은 플래그가 지정된 항목입니다. 그 (것)들이 제거 될 때, 그것은 유효하게했다.

{ 
    "rc": "200", 
    "m" : "", 
    "o": "<div class='s1'><div class='avatar'><a href='\/asdf'>asdf<\/a><br \/><strong>0<\/strong>  <\/div> <div class='sl'><p>444444444<\/p><\/div><div class='clear'><\/div><\/div>" 
} 
+1

프로그래밍 방식으로 줄 바꿈을 이스케이프 처리하려면 어떻게해야합니까? – mrblah

-1

자바 스크립트 문자열에서 HTML을 이스케이프 할 필요가 없습니다. 정확히 무엇을하려고합니까/문제가 무엇입니까? escape() 기능을 살펴보십시오. 도움이 될 것입니다.

+5

나쁘게 이름 붙인 escape() 함수는 URI 인코딩을위한 것이며, 여기에 인용 부호의 이스케이프 처리 (바깥 쪽 따옴표와 백 슬래시에 따라 단일 또는 이중)가 필요하다. –

+0

그의 예제 문자열에는 큰 따옴표가 없으며 이스케이프를 사용하면 문자열을 깨는 데 문제가없는 % 22로 변환되므로 unescape()를 사용하여 쉽게 읽을 수있는 형식으로 되돌릴 수 있습니다 . – nickf

+1

하지만 JSON은 JavaScript 객체 리터럴 표기법이므로 문자열 디코딩 규칙은 URI 이스케이프가 아닌 백 슬래시 이스케이프를 통해 지원됩니다. 내장 된 규칙이 작동 할 때 양쪽에서 수행해야하는 맞춤 이스 케이 핑의 다른 레이어를 추가해야하는 이유는 무엇입니까? –

1

예를 들어, 아무 것도 벗어날 필요가 없습니다. 그러나 HTML에 큰 따옴표가 포함되어 있으면 분명히 이스케이프 처리해야합니다.

+1

큰 따옴표와 백 슬래시 문자. "C : \ xyz \"는 일을 망칠 것입니다. –

+0

네, 맞아요. 기억해 주셔서 감사합니다 =) –

0

HTML 값은 괜찮지 만 JSON 개체의 키는 따옴표로 묶어야합니다. JSON RFC에서

:

2.2.

사물 객체 구조는 0 이상의 이름/값을 둘러싸는 중괄호
한 쌍의 를 나타낸다 쌍 (또는 부재). 이름은
문자열입니다.

2.5

. 문자열

문자열 표현은 C
프로그래밍 언어 제품군에 사용 된 규칙과 비슷한 입니다. A 문자열은
따옴표로 시작하고 끝납니다.

또한, 출력 HTML 페이지의 스크립트 태그 안에이 JSON 객체, 당신은 this appendix in the HTML 4 specification에 따라 HTML 닫는 태그의 "< /"순서를 탈출해야합니다.

+0

좋아요, 코드가 업데이트되었는데 제대로 작동합니까? – mrblah