2012-07-06 20 views
7

Duplicar posibles:
JSON pretty print using JavaScriptPrettify JSON en JavaScript

Estoy trabajando en un proyecto que será utilizado para ayudar a analizar y comprender los arrays JSON por los futuros promotores de una plataforma . Me refiero a la brillante página del Explorador de gráficos de Facebook, seen here, y quiero imprimir nuestra matriz en una matriz embebida, correctamente con sangrías y línea embebida, tal como lo hace en el explorador.

Las matrices tienen una salida de textarea, y debido a esto, creo que estoy teniendo problemas con el salto de línea y las pestañas. También intenté utilizar la biblioteca de embellecimiento, pero sin suerte.

Ejemplo:

{"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} 

Para:

{ 
    "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

Vea también http://stackoverflow.com/questions/2614862/how-can-i-beautify-json-programmatically –

+0

También hay http://www.jsonlint.com/ - si eso ' ¡Te ayudo al reducir tu carga de trabajo! :) –

+0

@limelights Parece una buena herramienta, pero las matrices siempre serán válidas, por lo que no es necesario que las pruebes, sino que simplemente las visualices más ordenadamente. –

Respuesta

27

Es posible utilizar JSON.stringify:

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

Véase el demo.

ACTUALIZACIÓN: Si usted no tiene jsonobj, pero tienen cadena JSON, a continuación, antes de utilizar la función stringify, convertir a cadena JSON JSON objeto de esta línea:

jsonobj = JSON.parse(jsonstring); 
+0

No funciona: la salida es como '" {\ "streamtype \": \ "returnAll \"} ', como una cadena, sin saltos de línea o pestañas. –

+1

@RyanBrodie Debe pasar' Object', no '' String ', es por eso que obtuvieron esos resultados. Para convertir una cadena en un objeto, use' JSON.parse (yourstring) ', y luego pase a la función' JSON.stringify'. Por lo tanto, debe hacer esto: 'JSON.stringify (JSON. parse (yourstring), null, '\ t') ' – Engineer

+0

Gracias @ingeniero! –

0

probar esto solution, también Usé esto en mi proyecto

+0

Gracias por la respuesta, pero la solución de @ Engineer funcionó mejor. –

+0

La función nativa funciona muy bien con w/o necesidad de dependencias adicionales. 'var str = JSON.stringify (obj, null, 2);' –