首页 新闻 会员 周边 捐助

json多叉树在asp.net后台怎么拼接

0
悬赏园豆:20 [已解决问题] 解决于 2012-11-16 11:53

树结构如下上图:

多级节点问题,在后台怎么拼装成上图json格式的字符串?求助,在线等!谢谢各位大哥大姐咯!

奋斗ITan_yxing的主页 奋斗ITan_yxing | 初学一级 | 园豆:192
提问于:2012-11-13 10:52
< >
分享
最佳答案
0

第一中方式是直接用开源的json库,然后在后台定义更这个josn相匹配的类对象,然后用json库转换,这样的好处是转换出来没有错误,坏处是存在大量的装箱和拆箱操作。

第二种,在c#中json格式其实就是一个字符串,所以可以直接string.format("[{{name:name,code:{0}}}]","code");这样的方法去拼装,这样做好处是可以随意拼装而不用定义复杂的对象类,少了很多的装箱/拆箱操作。坏处是一旦出错或需要修改时变的相对困难,且可读性不够好。

收获园豆:20
az235 | 大侠五级 |园豆:8483 | 2012-11-13 11:07

嗯,首先谢谢你详细的回答。json开源库是将对象转换为json字符串,是针对于单个对象,或者有一定规律的循环对象来的,而我这里是无限极子集,就是子集下面还可能有children,用json开源库应该很难

奋斗ITan_yxing | 园豆:192 (初学一级) | 2012-11-13 11:17

@奋斗ITan_yxing: 只要你的数据结构正确,无限级的对象,合起来还是一个对象,所以这个转换还是可以的

az235 | 园豆:8483 (大侠五级) | 2012-11-13 11:30

@az235:我现在正在做部门组织架构(包含子部门和孙子部门,可能有很多个孙子部门),那麻烦您给我相对较容易的一个思路

奋斗ITan_yxing | 园豆:192 (初学一级) | 2012-11-14 09:30

@奋斗ITan_yxing: 部门实体类中影视一个子部门的实体类,就是链表的数据结构

az235 | 园豆:8483 (大侠五级) | 2012-11-14 10:54
其他回答(3)
0

个人觉得更够定义好一个实体类,一切都OK了

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-13 13:20

实体类?定义树结构的属性和方法吗?然后将封装成对象,最后处理对象吗

支持(0) 反对(0) 奋斗ITan_yxing | 园豆:192 (初学一级) | 2012-11-14 09:35

@奋斗ITan_yxing: 

public class Item
{
    public int id{get;set;}
    public string code{get;set;}
    public string name{get;set;}
    public string addr{get;set;}
    public string col4{get;set;}
    public iconCls{get;set;}
    public List<Item>{get;set;}
}

List<Item> list = new List<Items>();

你把list转换成JSON,就是你想要的了

支持(0) 反对(0) chenping2008 | 园豆:9836 (大侠五级) | 2012-11-14 09:39

问题已经解决,谢了

支持(0) 反对(0) 奋斗ITan_yxing | 园豆:192 (初学一级) | 2012-11-16 11:52

@奋斗ITan_yxing: 请问你是怎么解决的?能不能共享一下

支持(0) 反对(0) 阿群 | 园豆:200 (初学一级) | 2015-01-22 18:06
0

无限级树叉不是常规的数据存储形式,我们大多数时间接触的数据存储均为链表形式的。
首先,类的数据存储形势基本上可以确定为链表形式,因此用类来表示一个树叉,通常的定义都包含{键,父键,值以及其他属性}。
其次要考虑的,就是如何将链表形式的数据拼接成字符串,循环迭代是个不错的方法。

飞扬的尘埃 | 园豆:1318 (小虾三级) | 2012-11-13 14:24

就是拼接的时候考虑起来很麻烦,有没有一种好的组件或者插件丢一个json就能够自动显示的?

支持(0) 反对(1) 奋斗ITan_yxing | 园豆:192 (初学一级) | 2012-11-14 09:38

@奋斗ITan_yxing: 我目前接触的TreeView控件比较少,像Asp.Net的TreeView、JQuery.treeview,还有一个网上比较流行的prototype框架的jsTreeView都需要自己使用链表结构数据,通过迭代来构建树叉,用于显示。
另外,你现在是有链表结构的数据,希望拼接成树杈结构的Json?还是说,你有树叉结构的Json,希望有插件直接展示这个树叉?

支持(0) 反对(0) 飞扬的尘埃 | 园豆:1318 (小虾三级) | 2012-11-14 09:52

问题已经解决,谢了

支持(0) 反对(0) 奋斗ITan_yxing | 园豆:192 (初学一级) | 2012-11-16 11:52
0

-------------------------------------------------------------

详细解决方案见:http://www.iteye.com/topic/1122125

-------------------------------------------------------------

wang19840917 | 园豆:202 (菜鸟二级) | 2013-03-01 18:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册