【问题标题】:How to format complex json with javascript? [closed]如何用javascript格式化复杂的json? [关闭]
【发布时间】:2014-07-30 23:21:15
【问题描述】:

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

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

这是我的 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": ...

有什么想法吗?

【问题讨论】:

  • 真正的问题是什么?你有什么问题?
  • 我很难找到一种简单的方法来显示它,我很确定这是可能的。也许可以递归地显示键和值?
  • 也许写一个递归函数返回嵌套的ul和li元素的html?
  • 您想“美化” JSON(使其看起来仍然像 JSON)还是只显示其中包含的数据?
  • DynaTables 会解决你的问题

标签: javascript json parsing


【解决方案1】:
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 美化器。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • bloodpletech 绝对是我想要的,谢谢。
    • 我讨厌接受 -1 的答案
    猜你喜欢
    • 2022-09-30
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2010-12-30
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多