2011-09-26 2 views
6

json에서 처음으로 작업합니다.Json 결과가 사전 태그로 묶여 있음 - 값을 얻는 방법

public JsonResult Upload() 
{ 
    ... 
    return Json(new { foo = "sos....sos....sos..."}); 
} 

을하지만 결과에서 내가 할 모든이 "사전"태그 내 메시지 랩입니다 : 내 액션 메소드에서 JSON을 반환하려합니다. 어떻게 "foo"를 파싱 할 것인가?

"<pre style="word-wrap: break-word; white-space: pre-wrap;">{"foo":"sos....sos....sos..."}</pre>" 

답변

13

내가 pre 태그로 싸여있는 데이터를받는 이유는 데이터를 HTML이 아닌 일반 텍스트 또는 json으로 요청하기 때문입니다.

데이터 형식을 json으로 지정하여 응답을 HTML로 변환하지 않도록하십시오.

+0

Chrome의 PHP에서'header ('Content-Type : application/json')'을 사용하고 있습니다. 머리글에도 불구하고 추가 된 탭으로 출력이 미리 감싸는 것 같습니다. –

+0

@Fenchurch는이 질문에 더 잘 대답한다고 생각합니다.이 질문은 'pre' 태그를 피하는 방법이 아니라 내용을 얻는 방법입니다. – ProfK

+0

@ProfK 이것은 훨씬 더 좋은 대답입니다. OP는'pre' 태그를 원하지 않습니다. 그들은 그것을 피할 수 있는지 모르기 때문에 foo를 구문 분석하는 방법을 묻고 있습니다. json에서 html로 변환 한 다음 json으로 다시 변환하는 이유는 무엇입니까? – Arth

3

이렇게하면 "yourclass"클래스가있는 첫 번째 pre 태그의 내용을 반환합니다.

document.querySelector("pre.yourclass").innerHTML 
0

클라이언트 측 핸들러가 서버의 응답이 HTML 형식인지 확인하려고 할 수 있습니다. 파일 업로드 지원이 포함 된 일부 자바 스크립트 라이브러리는 설명하는대로 태그에 HTML이 아닌 메시지를 래핑합니다. 매우 직관적이지 않은 솔루션은 서버에서 MIME 형식을 "text/html"로 설정하여 ajax 처리기가 응답을 래핑하지 않도록 할 수 있습니다.