我正在尝试在新窗口中以可读格式显示json。我有一个按钮,当您单击一个新选项卡时,其中会显示json。但是,在新窗口中,json仍未格式化,显示为纯文本。但是,在console.log中,其格式正确。我不明白为什么会有所不同。

$('.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();
    });
});

最佳答案

将其放入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();

10-06 00:17