从json回调中呈现树视图

rendering tree view from json callback

本文关键字:视图 json 回调      更新时间:2023-09-26

JSON回调只返回格式化的日期。根据给定的日期,我必须构建一个树结构,将不同的年份、月份和日期分隔开来。只有在回调中获得的日期才会包含在树中。

我在ServiceSuccessCallBack上写了如下内容:

                        var daty = '';
                        var roczniki = '';
                        var miesiace = '';
                        var dni = '';
                        for (var i in result.Content) {
                            roczniki += '<ol id="lata">' + result.Content[i].getFullYear() + '</ol>';
                            miesiace += '<ol id="miesiace"><li>' + (result.Content[i].getMonth() + 1) + '</li></ol>';
                            dni += '<ol id="dni"><li>' + result.Content[i].getDate() + '</li></ol>';
                        }
                        var $st = $('#toolLeft');
                        $st.append(roczniki);
                        $('#lata').append(miesiace);
                        $('#miesiace').append(dni);

它提供了一个树状视图,但每个日期都被写入第一个节点(第一个找到的年份),第二个问题是我不知道如何忽略数据的重复。我的意思是,如果某一年在树中有位置,那么同一年的另一个日期应该转到同一节点级别,而不是创建新的。。。。

它提供了一个树状视图,但每个日期都写入第一个节点

使用JSON.stringify构建DOM,如本问题所示:

Javascript:使用reviver函数,我似乎可以';在插入数字的同时,不能更改所有的键

如果某一年在树中有一个位置,那么同一年的另一个日期应该转到同一节点级别,不创建新的

使用循环插入每个日期作为对象文字(如foo)的键,然后使用JSON.parse删除重复的键。这里有一个例子:

 var foo = {"2000-01-01":"good", "2001-09-11":"bad", "2000-11-02":"ugly", "2000-01-01":"jetson"}
 var bar = JSON.parse(JSON.stringify(foo) )
 var baz = JSON.stringify(bar)