• convert tree structure from database to json object


    Top 6 JavaScript Family Tree Diagram Libraries - DZone Java

    https://dzone.com/articles/top-6-javascript-family-tree-diagram-libraries

    https://stackoverflow.com/questions/62370136/convert-tree-structure-from-database-to-json-object-in-java

    https://stackoverflow.com/questions/34841963/convert-json-object-to-tree-json-object

    https://stackoverflow.com/questions/26059419/convert-this-json-data-into-tree-view

    https://stackoverflow.com/questions/16294912/serializing-a-tree-into-json-object

    https://github.com/Erffun/JsonTree

    https://cknotes.com/c-load-a-treeview-from-json-save-a-treeview-to-json/

    https://stackoverflow.com/questions/16294912/serializing-a-tree-into-json-object

     https://www.codeproject.com/questions/806044/how-to-conver-multi-level-json-data-to-csharp-obje

     https://github.com/nishiba/object_creator C++

    json covert string

     var dd=JSON.stringify(treeDu);

    string covert json

    var jsontext = '{"firstname":"James","surname":"Bond","mobile":["007-700-007","001-007-007-0007"]}';

    var contact = JSON.parse(jsontext);

    console.log(contact.firstname + " " + contact.surname);

    console.log(contact.mobile[1]);

    
    
    <script type="text/javascript">
    	var lines = 
       ('1, cars, geovindu0, 0\n' +
        '2, boats, geovindu0, 0\n' +
        '3, oldtimer, geovindu11, 1\n' +
        '4, trucks, geovindu11, 1\n' +
        '5, heavytrucks, geovindu444, 4').split('\n');   //.split('\n')
    
    var tree = [];
    var lookup = {}; // temporary variable
    
    for (var i in lines) {
        var items = lines[i].split(', ');
    
        var obj = { id: items[0], parent_id: items[3], name: items[1], title:items[2], children: [] };
        lookup[obj.id] = obj;
    
        if (lookup[obj.parent_id]) {
            lookup[obj.parent_id].children.push(obj);
        } else {
            tree.push(obj);
        }
    }
    
    //console.log(tree); // will display your tree
    	
    	
    	</script>
    

      

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Geovin Du 涂聚文</title>
     <link rel="stylesheet" href="css/jquery.orgchart.css">	
    	 <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript">
    	var lines = 
       ('1, cars, geovindu0, 0\n' +
        '2, boats, geovindu0, 1\n' +
        '3, oldtimer, geovindu11, 1\n' +
        '4, trucks, geovindu11, 3\n' +
        '5, heavytrucks, geovindu444, 4').split('\n');   //.split('\n')//根只有一个记录
    
    var treeDu = [];
    var lookup = {}; // temporary variable
    
    for (var i in lines) {
        var items = lines[i].split(', ');
    
        var obj = { id: items[0], parent_id: items[3], name: items[1], title:items[2], children: [] };
        lookup[obj.id] = obj;
    
        if (lookup[obj.parent_id]) {
            lookup[obj.parent_id].children.push(obj);
        } else {
            treeDu.push(obj);
        }
    }
    
    console.log(treeDu); // will display your tree
    	var dd=JSON.stringify(treeDu);
    	console.log(dd);
     $('#du').text(dd);	
    	
    	var x = { name: "Sivaraman", age: 31, city: "Chennai" };
    var y = JSON.stringify(x);
    document.getElementById("demo").value=y;
    	</script>
    </head>
    
    <body>
    	<div id="demo"></div>
    	<div id="du"></div>
    <div id="chart-container"></div>
    
      <script type="text/javascript" src="js/jquery.orgchart.js"></script>	
    	<script type="text/javascript">
    	(function($) {
      $(function() {
    	  var lines = 
       ('1, cars, geovindu, 0\n' +
        '2, boats, geovindu, 1\n' +
        '3, oldtimer, geovindu, 1\n' +
        '4, trucks, geovindu, 3\n' +
        '5, heavytrucks, geovindu, 4').split('\n');   //.split('\n')
    
    var tree = [];
    var lookup = {}; // temporary variable
    
    for (var i in lines) {
        var items = lines[i].split(', ');
    
        var obj = { id: items[0], parent_id: items[3], name: items[1], title:items[2], children: [] };
        lookup[obj.id] = obj;
    
        if (lookup[obj.parent_id]) {
            lookup[obj.parent_id].children.push(obj);
        } else {
            tree.push(obj);
        }
    }
    
    //console.log(tree); // will display your tree
    var dds=JSON.stringify(tree);	 
    var str1 = dds.substr(1); //删除首字符
    var str2 = str1.substring(0,str1.length-1); //删除最后末字符	  
    console.log(str2);	
    var contact = JSON.parse(str2);	  
    	  /*
    	  data【json or String】:数据
    pan 【boolean 默:flase】:通过鼠标拖放来控制OrgChart
    zoom【boolean 默:false】:通过鼠标滚轮放大或缩放OrgChart
    zoominLimit【number 默:7】:设置放大限制
    zoomoutLimit【number 默:0.5】:设置缩放限制
    direction【String 默:t2b】:T2B:"从上到下",B2T:"从底到上",L2R:"左到右",R2L:"向左到右"
    verticalLevel【integer(>=2)】:
    toggleSiblingsResp【boolean 默:false】:通过单击左/右箭头分别显示/隐藏左/右兄弟节点
    ajaxURL【json】:不同的优先级提供了发送不同节点的Ajax请求的URL
    visibleLevel【number】:默认展开几级
    nodeId【String 默:id】:将数据源的一个属性设置为每个OrgChart节点的唯一标识符。
    nodeTitle【String 默:name】:将数据源的一个属性设置为OrgChart节点标题段的文本内容
    nodeContent【String】:将数据源的一个属性设置为OrgChart节点的内容部分的文本内容。
    nodeTemplate【function】:它是一个模板生成函数,用于定制任何复杂的节点内部结构
    createNode【function】:它是用于自定义每个OrgCad节点的回调函数
    parentNodeSymbol【String 默:fa-users】:使用图标暗示该节点有子节点
    exportButton【boolean 默:false】:是否启用OrgChar的导出按钮
    exportFilename【String 默:OrgChart】:当输出当前的OrgChart作为图片时,它是文件名。
    exportFileextension【String 默:png】:可用的值是PNG和PDF。
    chartClass【String】:当你想在一个页面上实例化多个orgcharts 时,你应该添加不同的类名来区分它们。
    draggable【boolean 默:false】:用户可以拖动和删除OrgChart节点
    dropCriteria【function】:用户可以构造自己的标准来限制拖动节点和删除区域之间的关系
    initCompleted【function】:经常知道您的表何时已经完全初始化、数据加载和呈现,尤其是当使用Ajax数据源时
    	  */
        var oc = $('#chart-container').orgchart({
          'data' : contact,
          'depth': 12,
    		'nodeId':'id',
    		//'nodeTitle':'photo',
          'nodeContent': 'title',
    		drag: true,//是否可以拖动
    	   //'direction': 'b2t',
    		//'direction': 'r2l',
    		//'toggleSiblingsResp': true,
    		'exportButton': true,
            'exportFilename': 'DuOrgChart',
    	   'pan': true,
          'zoom': true
        });
    
      });
    })(jQuery);
    	
    	</script>
    	
    </body>
    </html>
    

      

    primefaces
    PrimeFaces – Ultimate UI Framework
    https://www.primefaces.org/
    https://primefaces.github.io/primefaces/7_0/#/
    https://github.com/primefaces/primefaces
    https://www.javatpoint.com/primefaces-tutorial

    JavaServer Faces


    serialize nested Parent-Child relationships into JSON?
    C# Json Interface serialization parent-child
    serializing tree parent children json object
    serializing tree json object
    https://stackoverflow.com/questions/62176611/json-serializing-datarow-into-parent-object
    https://discourse.mcneel.com/t/serializing-deserializing-datatrees-with-json-net/66672

    https://stackoverflow.com/questions/54288333/c-sharp-json-interface-serialization-parent-child
    https://stackoverflow.com/questions/16294912/serializing-a-tree-into-json-object
    https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to?pivots=dotnet-6-0
    https://stackoverflow.com/questions/35275335/convert-a-treeview-to-json-using-c-sharp

    python
    https://newbedev.com/how-to-serialize-a-tree-class-object-structure-into-json-file-format

     

        /// <summary>
        ///https://stackoverflow.com/questions/35275335/convert-a-treeview-to-json-using-c-sharp
        ///https://stackoverflow.com/questions/65215203/how-to-serialize-a-json-file-with-tree-structure-with-jackson
        ///Geovin Du
        ///geovindu
        /// </summary>
        [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)]
        public class Node
        {
            /// <summary>
            /// 
            /// </summary>
            public Node()
           {
               this.Children = new List<Node>();
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="_value"></param>  
            /// <param name="_id"></param>
            /// <param name="_name"></param>
            /// <param name="_title"></param>
            /// <param name="_parentId"></param>
            /// <param name="_children"></param>
            /// <param name="_isChecked"></param>
            public Node(string _value,int _id,string _name,string _title,int _parentId, List<Node> _children = null, bool _isChecked = false)
            {
               Value = _value;
               isChecked = _isChecked;
               Id = _id;
               Name = _name;
               Title = _title;
               ParentId = _parentId;
    
               if (_children != null)
               {
                   Children = _children;
              }
            }
            [JsonProperty("value")]
            public string Value { get; set; }
    
             [JsonProperty("isChecked")]
             public bool isChecked { get; set; }
    
             [JsonProperty("Id")]
             public int Id { get; set; }
    
             [JsonProperty("Name")]
             public string Name { get; set; }
    
    
             [JsonProperty("Title")]
             public string Title { get; set; }
    
             [JsonProperty("ParentId")]
             public int ParentId { get; set; }
    
    
             [JsonProperty("Children", NullValueHandling = NullValueHandling.Ignore)]
             public List<Node> Children { get; set; }
    
            /// <summary>
            /// 
            /// </summary>
            [JsonIgnore]
            public string JSon
            {
                get
                {
                    return JsonConvert.SerializeObject(this);
                }
            }
        }
    

      

      /// <summary>
        /// https://stackoverflow.com/questions/35275335/convert-a-treeview-to-json-using-c-sharp
        /// https://stackoverflow.com/questions/16294912/serializing-a-tree-into-json-object
        /// geovindu,Geovin Du
        /// 涂聚文
        /// </summary>
        public class OrgChartConverter : JsonConverter
        {
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="objectType"></param>
            /// <returns></returns>
            public override bool CanConvert(Type objectType)
            {
             
                //return typeof(Node<T>).IsAssignableFrom(objectType);
                return typeof(Node).IsAssignableFrom(objectType);
    
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="writer"></param>
            /// <param name="value"></param>
            /// <param name="serializer"></param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                //Node<T> node = (Node<T>)value;
                
                Node node = (Node)value;
                //List<Node> node = (List<Node>)value;
                JObject obj = new JObject();
                //foreach (Node n in node)
                //{
                //    obj.Add("Name", n.Value);
    
                //    obj.Add("Children", JArray.FromObject(n.Children, serializer));
                //}
                 //
                 obj.Add("id", node.Id);
                 obj.Add("Name", node.Name);
                 obj.Add("Title", node.Title);
                 obj.Add("ParentId", node.ParentId);
                 obj.Add("Children", JArray.FromObject(node.Children, serializer));
                 obj.WriteTo(writer);
            }
            /// <summary>
            /// 
            /// </summary>
            public override bool CanRead
            {
                get { return false; }
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="reader"></param>
            /// <param name="objectType"></param>
            /// <param name="existingValue"></param>
            /// <param name="serializer"></param>
            /// <returns></returns>
            public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
            {
                throw new NotImplementedException();
            }
    
    
        }
    

      

        /// <summary>
        /// 父节点
        /// geovindu
        /// </summary>
        public class RootParent
        {
          /// <summary>
          /// 
          /// </summary>
            public Node ParentNode { get; set; }
    
            /// <summary>
            /// 
            /// </summary>
            public List<Node> Children { get; set; }
            /// <summary>
            /// 
            /// </summary>
             public DataRow Data { get; set; }
        }
    

     

     

  • 相关阅读:
    python异常
    linux下进行base64编码解码
    mybatis参数映射
    Mybatis--映射器注解
    Mybatis--映射器注解
    Mybatis--Statement Builders
    Mybatis--Statement Builders
    在MySql中如何定义像Java中类型的Boolean类型
    在MySql中如何定义像Java中类型的Boolean类型
    Navicat导入导出数据表
  • 原文地址:https://www.cnblogs.com/geovindu/p/16042276.html
Copyright © 2020-2023  润新知