2014-12-30 4 views
0

json을 읽기 쉬운 형식으로 새 창에 표시하려고합니다. 버튼이 있고 새 탭을 클릭하면 json이 내부에 나타납니다. 그러나 새 창에서 json은 여전히 ​​형식화되지 않았으므로 일반 텍스트로 표시됩니다. 그러나 console.log에서는 제대로 형식이 지정됩니다. 나는 그것이 왜 다른지 이해하지 못합니다.json을 새 탭에서 읽을 수있는 형식으로 표시합니다.

$('.showRawJson').click(function() { 
    $.getJSON('somelink', function (json) { 
     var myjson = JSON.stringify(json, null, 2); 
     // In the console the json is well formatted 
     console.log(myjson); 
     var x = window.open(); 
     x.document.open(); 
     // Here in the new tab the json is NOT formatted 
     x.document.write(myjson); 
     x.document.close(); 
    }); 
}); 
+0

당신이 일치하지 않는이를' "',하지만 난 그 질문에 대한 귀하의 코드를 편집 때문이다 가정 – Nit

+0

user3793865 당신이 당신의 JSON 출력 – Priyank

답변

3

가하는 pre 태그에 넣어 및

이를 사용하려면, 당신은 문자열로 다시 객체로 문자열을 설정해야합니다 그것은 디스플레이 중에 공백을 유지할 것이다. 귀하의 코드를 약간 변경 :.. 우선 들어

var myjson = JSON.stringify(json, null, 2); 
    console.log(myjson); 
    var x = window.open(); 
    x.document.open(); 
    x.document.write('<html><body><pre>' + myjson + '</pre></body></html>'); 
    x.document.close(); 
+0

감사를 표시 할 수 있습니다 @ 사전 태그 내 문제를 해결했다. 나는 그것에 대해 완전히 잊었다. – george

0

JSON.stringify<pre> 태그 같은 것을보십시오.

예 :

http://jsfiddle.net/yEez8/

var jsonStr = $("pre").text(); 
var jsonObj = JSON.parse(jsonStr); 
var jsonPretty = JSON.stringify(jsonObj, null, '\t'); 

$("pre").text(jsonPretty); 
관련 문제