如何使用javascript格式化复杂的json?

时间:2014-06-10 09:01:56

标签: javascript json parsing

我一直在尝试找到一种简单的方法来格式化复杂的json文件并将其转换为可读的html内容。

目标是生成一组嵌套框(html表),其中包含我的JSON文件的信息。

以下是我的json示例:

{"badgeGroups":
[{"name":"labAccess0", "badges" : ["AAAAAAAAAA"]},
 {"name":"labAccess1", "badges" : ["1111111111","29006812B3"]}], 
"inputs":
    [{"name":"labDoorSecurityButton0", "state":false, "port":12}], 
"outputs":
    [{"name":"led0","equation":"labDoorSecurityButton0", "state":false,     "port":0,"type":"GENERIC", "inputs": ...

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您的问题的答案完全取决于您预期的输出格式。

例如,bloopletech's json2html可以解析任意JSON输入,并且可以看到示例输出over here
如果您想要更多自定义格式,还可以json2html jQuery plugin

总而言之,您的问题答案数量无限,因为它太宽泛了。

答案 1 :(得分:-2)

function JSONtoXML(obj) {
  var s = "";
  var i=0;
  s = s + "<" + obj[0];
  var test = 0;
  for(i=1;i<obj.length;i++) {
    if(!(obj[i] instanceof Array) && !(typeof obj[i]==='string')) {
      var obje = obj[i];
      var k="";
      for(prp in obje) {
        k = k +" "+ prp + '="';
        k = k+ obje[prp] + '" ';
      }
      s = s+k;
    }
    else if(!(typeof obj[i]==='string')){
      if(test===0) {
        s = s+">";
        test++;
      }
      s = s + JSONtoXML(obj[i]);
    }
    else {
      if(test===0) {
        s = s+">";
        test++;
      }
      s = s +obj[i];
    }
  }
  if(test===0) {
    s = s+">";
    test++;
  }
  s = s+ "</" + obj[0] +">";
  return s;
}

这将完成将json转换为xml的工作。 如果你想要更好的可读性尝试一些json美化。