将平面 JSON 转换为父子关系结构

瓦姆西克里希纳

我们想根据父链接和显示顺序将下面的 JSON 转换为树视图结构的父子关系。

  1. 如果父链接为空,则为父链接
  2. 如果存在父链接,则应将其添加为子链接
  3. 项目应根据显示顺序排序
[{
  "ParentLink":{ },
  "Id":1,
  "Title":"Home ITSD test new",
  "Url":{
     "Description":"#",
     "Url":"https://technologies.sharepoint.com/"
  },
  "DisplayOrder":1,
  "IsActive":true,
  "ID":1},{
  "ParentLink":{

  },
  "Id":2,
  "Title":"Link6",
  "Url":{
     "Description":"#",
     "Url":"https://technologies.sharepoint.com/"
  },
  "DisplayOrder":2,
  "IsActive":true,
  "ID":2},{"ParentLink":{
     "Title":"Link6"
  },
  "Id":3,
  "Title":"link7",
  "Url":{
     "Description":"#",
     "Url":"https://technologies.sharepoint.com/"
  },
  "DisplayOrder":21,
  "IsActive":true,
  "ID":3},{
  "ParentLink":{
     "Title":"Link6"
  },"Id":4,
  "Title":"link8",
  "Url":{
     "Description":"#",
     "Url":"https://technologies.sharepoint.com/"
  },
  "DisplayOrder":22,
  "IsActive":true,
  "ID":4},{
  "ParentLink":{
     "Title":"link8"
  },
  "Id":5,
  "Title":"link9",
  "Url":{
     "Description":"#",
     "Url":"https://technologies.sharepoint.com/"
  },
  "DisplayOrder":221,
  "IsActive":true,
  "ID":5}]

是否有任何其他可用的库或任何简单的方法来做到这一点

尼娜·舒尔茨

虽然TitleParentLink.Title没有匹配的值,但您可以将两个值都作为小写字母,并通过迭代给定数组并使用对象来分配节点和子节点来使用它们来生成树。

对于想要的顺序,我建议提前对数据进行排序,以节点为实际生成树的顺序。这比稍后仅对零件进行排序更容易。

只是想知道,为什么数据有两个 id 属性?

var data = [{ ParentLink: {}, Id: 1, Title: "Home ITSD test new", Url: { Description: "#", Url: "https://technologies.sharepoint.com/" }, DisplayOrder: 1, IsActive: true, ID: 1 }, { ParentLink: {}, Id: 2, Title: "Link6", Url: { Description: "#", Url: "https://technologies.sharepoint.com/" }, DisplayOrder: 2, IsActive: true, ID: 2 }, { ParentLink: { Title: "Link6" }, Id: 3, Title: "link7", Url: { Description: "#", Url: "https://technologies.sharepoint.com/" }, DisplayOrder: 21, IsActive: true, ID: 3 }, { ParentLink: { Title: "Link6" }, Id: 4, Title: "link8", Url: { Description: "#", Url: "https://technologies.sharepoint.com/" }, DisplayOrder: 22, IsActive: true, ID: 4 }, { ParentLink: { Title: "link8" }, Id: 5, Title: "link9", Url: { Description: "#", Url: "https://technologies.sharepoint.com/" }, DisplayOrder: 221, IsActive: true, ID: 5 }],
    tree = function (data, root) {
        var r = [], o = {};
        data.forEach(function (a) {
            var id = a.Title.toLowerCase(),
                parent = a.ParentLink && a.ParentLink.Title && a.ParentLink.Title.toLowerCase();

            a.children = o[id] && o[id].children;
            o[id] = a;
            if (parent === root) {
                r.push(a);
            } else {
                o[parent] = o[parent] || {};
                o[parent].children = o[parent].children || [];
                o[parent].children.push(a);
            }
        });
        return r;
    }(data, undefined);

console.log(tree);
.as-console-wrapper { max-height: 100% !important; top: 0; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从平面 json 创建父子关系?

来自分类Dev

将多对多转换为父子关系

来自分类Dev

将嵌套 JSON 转换为平面 JSON

来自分类Dev

如何将 XML 转换为哈希映射而忽略父子关系

来自分类Dev

将嵌套的 JSON 数组转换为平面 JSON 数组

来自分类Dev

将 JSOn 对象转换为平面 JSON 数组

来自分类Dev

使用列标题将平面JSON转换为TSV文件

来自分类Dev

将制表符分隔的平面文件转换为Json嵌套结构

来自分类Dev

如何将平面JavaScript对象数组转换为嵌套的分层JSON结构?

来自分类Dev

将平面 JSON 结构转换为对象并添加另一个属性

来自分类Dev

如何通过javascript将父子数组转换为json树结构

来自分类Dev

将嵌套结构添加到平面json

来自分类Dev

将平面表转换为层次结构

来自分类Dev

将平面表转换为层次结构

来自分类Dev

将平面结构转换为对象

来自分类Dev

通过JSON设置父子关系

来自分类Dev

创建父子关系JSON树

来自分类Dev

将父子结构转换为子父

来自分类Dev

Node.js-将平面json转换为没有'parent','child'属性的分层json

来自分类Dev

如何使用Google Apps脚本将平面JSON数组转换为嵌套JSON?

来自分类Dev

使用FOR JSON将平面SQL行转换为嵌套JSON数组

来自分类Dev

杰克逊:如何将平面 json 转换为嵌套 json

来自分类Dev

将一组父子关系转变为层次结构

来自分类Dev

根据平面表中的父子关系创建树

来自分类Dev

在javascript中将平面json文件转换为树结构

来自分类Dev

如何将平面多分支数据转换为分层JSON?

来自分类Dev

在 C# 中递归地将嵌套的 JSON 转换为平面数组

来自分类Dev

将json结构转换为行

来自分类Dev

错误:将循环结构转换为 JSON

Related 相关文章

热门标签

归档