javascript - 通过 jQuery 将 JSON 对象转换为格式化数组

标签 javascript jquery json twitter-bootstrap treeview

我有一个 JSON 对象,我想将其转换为数组,以便我可以将它与 bootstrap-treeview 一起使用。 jQuery 插件。为此,我需要 JSON 对象采用以下格式:

var tree = [
{
  text: "Parent 1",
  nodes: [
    {
      text: "Child 1",
      nodes: [
        {
          text: "Grandchild 1"
        },
        {
          text: "Grandchild 2"
        }
      ]
    },
  {
    text: "Child 2"
  }
]
},
{
  text: "Parent 2"
},
{
  text: "Parent 3"
},
{
  text: "Parent 4"
},
{
  text: "Parent 5"
}
];

我知道我可能需要递归地迭代 JSON 对象,但我不知道如何进行。

最佳答案

希望这有帮助!

    arrConvert = new Array();
    function convertItem(p){
        arrItem = new Array();
        for (var key in p) {
              if (p.hasOwnProperty(key)) {
                  if($.type(p[key]) === "string" || $.type(p[key]) === "number" )
                      arrItem.push({"text":p[key]});
                  else{
                      arrItem.push({"nodes":convertItem(p[key])});
                  }
              }
        }
        return arrItem;
    }

    $(function(){
        var testArr = {
                        "SectionsData":[
                                    {"Characteristics":"abc", "Entropy":1.55288}, 
                                    {"Characteristics":"xyz",   "Entropy":1.55288},
                                    {"Characteristics":"mno", "Entropy":1.55288}
                                ],
                        "NumberOfSections":29,
                        "SHA1":"7ED11BBA8EF27B8‌​FE8617F5446142A3A0613CC41",
                        "Entropy":6.06652,
                        "CodeSection":[
                                        {"Characteristics":"abc1", "Entropy":1.55288}, 
                                        {"Characteristics":"xyz2",  "Entropy":1.55288},
                                        {"Characteristics":"mno3", "Entropy":1.55288}
                                    ]        
                        };

        //This is array after convert
        arrConvert = convertItem(testArr);
    }); 

关于javascript - 通过 jQuery 将 JSON 对象转换为格式化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28937755/

相关文章:

javascript - 如何设置 JSONP?

javascript - MVC3 Ajax ActionLink 在使用 TempData 完成时调用 javascript 函数

javascript - 使用 JavaScript 循环数据以创建包含键/值对的字典

javascript - jGrowl 粘滞在 IE8 中不起作用

javascript - 从钛合金选取器中获取选定行

javascript - 当文档使用 .not() 初始化时无法隐藏 div

javascript - 附加 JSON 对象编号 - 故障排除

javascript - 使用带有 header 的 Node js 进行 GET 调用

javascript - 尝试使用AJAX获取函数参数并传递给PHP代码

javascript - 防止内容可编辑 div 中的文本选择/突出显示