2011-12-06 6 views
0

jquery 및 json을 사용하여 텍스트를 저장합니다.jquery/json : 저장하지 않습니다 '및

.text()로 텍스트 영역의 텍스트를 가져와 json으로 저장하고 있습니다. \ 및 '를 제외한 모든 특수 문자가 저장됩니다.

%&$§/////blaääüü**´~+을 저장하려고 시도하지만 저장하려고하면 %&$§/////blaääüü**´~+\\\\\\\'''''이 작동하지 않습니다!

어떻게 해결할 수 있습니까?

편집

구원의 코드는 다음과 같습니다 (추출물)

$.ajax({ 
     url: "myURI" 
       , type: "POST" 
       , dataType: "json" 
       , data: 
       "{ " + 
       "', 'text': '" + $('#myText').text() + 
       "' }" 
       , contentType: "application/json; charset=utf-8"; 
     }); 
+2

어떻게 할 "적절한 키 - 값 쌍을 서버로 전송되도록 사용하는 서버 측 언어에 따라

  • , 당신은 키에 JSON을 할당해야 "저장"텍스트? 코드를 게시하십시오. –

  • +0

    내 게시물에 코드를 추가했습니다. –

    답변

    6

    좋아, 당신의 주요 문제는 사용자가 만든 JSON이 유효하지 않음을하고 당신이 그것을 만드는 것이 " 수동으로 ". 문자열 연결의 결과는 다음과 같습니다.

    { ', 'text': '%&$§/////blaääüü**´~+\\\'''''' } 
    

    실제로 JSON처럼 보이지 않습니다. 대신

    사용 JSON.stringify[MDN] (도 사용할 수 external library) :

    data: JSON.stringify({text: $('#myText').text()}) 
    

    또한 문제 : JSON에서

    • 키 큰 따옴표가 아닌 단일 인용 부호에 있어야합니다.

    • 텍스트에 이스케이프 문자 (\)와 작은 따옴표 (')가 포함되어 있다는 사실은 사용자가 만든 최종 문자열로 엉망이됩니다. 그렇기 때문에 콘텐츠를 적절히 탈출하고 브라우저에 생성을 남겨 두어야합니다.

      data: {json: JSON.stringify(...)} 
      
    +0

    좋은 답변 주셔서 감사합니다. 여전히 문제가 있습니다 : stringify를 사용하려고하면 아무 것도 저장하지 않습니다. 데이터 : {json : JSON.stringify ({ val1 : $ ('# val1')) val(), val2 : $ ('# val2') val(), 텍스트 : $ ('# myText') .text() } } –

    +0

    "아무 것도 저장하지 않겠다"는 의미는 무엇입니까? 서버 측에서받는 데이터는 무엇입니까? 제대로 접근하고 있습니까? JSON은 제대로 작성되었습니다. http://jsfiddle.net/mkKKx/ 문제가 발생하면 서버 측에있는 것 같습니다. –

    +0

    성공하면 "성공"으로 표시되고 오류 저장시 오류가 발생합니다. "잘못된 json-primitive : json"오류가 발생합니다. –

    관련 문제