在JavaScript中整理JSON数组

Rya*_*die 15 html javascript jquery json

可能重复:
使用JavaScript的JSON漂亮打印

我正在开发一个项目,用于帮助平台的未来开发人员分析和理解JSON数组.我正在引用Facebook的精彩图形资源管理器页面,在这里看到,并希望在一个美化,正确的标签缩进和行断路器数组中输出我们的数组,就像在资源管理器上一样.

数组输出到a 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}
Run Code Online (Sandbox Code Playgroud)

至:

{
   "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
}
Run Code Online (Sandbox Code Playgroud)

Eng*_*eer 42

您可以使用JSON.stringify:

JSON.stringify(jsonobj,null,'\t')
Run Code Online (Sandbox Code Playgroud)

演示.

更新:如果你没有jsonobj,但有json字符串,那么在使用stringify函数之前,通过这一行将json字符串转换为json对象:

jsonobj = JSON.parse(jsonstring);
Run Code Online (Sandbox Code Playgroud)

  • @RyanBrodie你需要传递`Object`,而不是`String`,这就是你得到这样的结果的原因。要将字符串转换为对象,请使用“JSON.parse(yourstring)”,然后传递给“JSON.stringify”函数。所以你需要这样做:`JSON.stringify(JSON.parse(yourstring),null,'\t')` (2认同)