2013-05-11 78 views
11

我的頁面上有一些Javascript,它使得返回一些JSON數據的ajax調用。帶有換行符的HTML中的JSON

有了結果,我這樣做:

results = JSON.stringify(data, undefined, 2); 
console.log(results); 
$('.box').append(results); 

.box只是一個空div。

console.log(results)給了我一個縮進的結果,但換行符只是.box中的數據都在一行中。

如何確保.box中的結果也位於多行並縮進?

回答

17

.box只是一個空格。

讓它空<pre>來代替:

<pre class="box"></pre> 
+0

關於預標籤的主要問題是,有沒有滾動條。 – cn123h 2016-03-04 14:11:52

+0

@ cn123h那不是真的。試着用overflow:auto設置元素的css。在最新版本的Chrome上爲我工作。 – SILENT 2017-04-20 23:46:01

6

我同意使用<pre>,但另一個選項&nbsp;替換所有\n<br>元素和空間。這可能真的沒有必要(因爲<pre>保留了空格)。你可以試試:

var data = {key1: "value1", key2: "value2", key3: {key4: "value4"}}, 
    results = JSON.stringify(data, undefined, 2), 
    results2 = results.replace(/\n/g, "<br>").replace(/[ ]/g, "&nbsp;"); 
console.log(results); 
$(".box").append(results2); 

DEMO:http://jsfiddle.net/Yk5Pb/3/

相關問題