2012-07-06 44 views
7

可能重複:
JSON pretty print using JavaScript美化JSON數組中的JavaScript

我的工作,這將被用來幫助分析,並通過平臺的未來開發者瞭解JSON陣列項目。我正在引用Facebook輝煌的Graph Explorer頁面seen here,並且希望在美化,正確製表符縮進和斷行數組中輸出我們的數組,就像它在瀏覽器上一樣。

該陣列輸出到textarea,正因爲如此,我認爲我遇到了斷線和跳閘的問題。我也試過使用美化庫,但沒有運氣。

例子:

{"outcome" : "success", "result" : {"name" : "messaging-sockets", "default-interface" : "external", "include" : [], "socket-binding" : {"messaging" : {"name" : "messaging", "interface" : null, "port" : 5445, "fixed-port" : null, "multicast-address" : null, "multicast-port" : null}, "messaging-throughput" : {"name" : "messaging-throughput", "interface" : null, "port" : 5455, "fixed-port" : null, "multicast-address" : null, "multicast-port" : null}}}, "compensating-operation" : null} 

要:

{ 
    "outcome":"success", 
    "result":{ 
     "name":"messaging-sockets", 
     "default-interface":"external", 
     "include":[ 

     ], 
     "socket-binding":{ 
     "messaging":{ 
      "name":"messaging", 
      "interface":null, 
      "port":5445, 
      "fixed-port":null, 
      "multicast-address":null, 
      "multicast-port":null 
     }, 
     "messaging-throughput":{ 
      "name":"messaging-throughput", 
      "interface":null, 
      "port":5455, 
      "fixed-port":null, 
      "multicast-address":null, 
      "multicast-port":null 
     } 
     } 
    }, 
    "compensating-operation":null 
} 
+0

參見http://stackoverflow.com/questions/2614862/how-can-i-beautify-json-programmatically – 2012-07-06 09:18:13

+0

還有http://www.jsonlint.com/ - 如果這' d通過減輕您的工作量來幫助您! :) – 2012-07-06 09:29:05

+0

@limelights這看起來像一個很好的工具,但是數組總是有效的,所以我們不需要測試它們,更多的只是將它們更整齊地可視化。 – 2012-07-06 09:32:59

回答

27

您可以使用JSON.stringify

JSON.stringify(jsonobj,null,'\t') 

demo

UPDATE:如果沒有jsonobj做,但有JSON字符串,然後使用stringify功能之前,通過這條線轉換JSON字符串JSON對象:

jsonobj = JSON.parse(jsonstring); 
+0

不工作 - 輸出就像'「{\」streamtype \「:\」returnAll \「}',作爲一個字符串,沒有換行符或製表符。 – 2012-07-06 09:28:11

+1

@RyanBrodie您需要傳遞'Object',而不是'String '',這就是爲什麼你會得到這樣的結果。要將字符串轉換爲對象,使用'JSON.parse(yourstring)',然後傳遞給'JSON.stringify'函數,所以你需要這樣做:'JSON.stringify(JSON。解析(yourstring),null,'\ t')' – Engineer 2012-07-06 09:30:06

+0

謝謝@engineer! – 2012-07-06 10:36:54

0

試試這個solution,我也在我的項目中使用這個

+0

感謝您的答案,但@工程師的解決方案效果最好 – 2012-07-06 10:36:35

+0

原生函數工作得很好瓦特/ o需要額外的依賴關係。var str = JSON.stringify(obj,null,2);' – 2016-11-11 21:50:24