C# 序列化三级地址,输出多层级JOSN数据

不进行文字描述了,直接上代码,时间有限。。。

方法代码

         //序列化三级地址 数据为 1号楼-1门-101 分别对应ID 为 1,1,1
        //1号楼-1门-102  1,1,2
        //获取b_id 该值为查询 第一级地址的ID
        int b_id =Convert.ToInt32(context.Request["b_id"]);
        DAL.Test.test dal = new DAL.Test.test();
        //获取第一集地址表
        DataTable dtTree = dal.address_f(b_id);
        //第一级地址集合
        List<addf> add_f = new List<addf>();
        //第二级地址集合
        List<adds> add_s = new List<adds>();
        //第三级地址集合
        List<addt> add_t = new List<addt>();
        DataTable dt = dtTree.Copy();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            DataRow dr = dt.Rows[i];
            addf model = new addf();
            model.id = (int)dr["id"];
            model.text = dr["text"].ToString();
            DataTable dt1 = dal.address_s(Convert.ToInt32(dr["id"]));
            add_f.Add(model);
            int a = dt1.Rows.Count;
            model.add_s = new List<adds>();
            for (int j = 0; j < dt1.Rows.Count; j++)
            {


                adds model1 = new adds
                {
                    id = Convert.ToInt32(dt1.Rows[j]["id"].ToString()),
                    text = dt1.Rows[j]["text"].ToString()
                };
                model.add_s.Add(model1);
                model1.add_t = new List<addt>();
                DataTable dt2 = dal.address_t(Convert.ToInt32(dt1.Rows[j]["id"].ToString()));
                for (int k = 0; k < dt2.Rows.Count; k++)
                {
                    addt model2 = new addt
                    {
                        id = Convert.ToInt32(dt2.Rows[k]["id"].ToString()),
                        text = dt2.Rows[k]["text"].ToString()
                    };
                    model1.add_t.Add(model2);
                }
            }
        }

        string json = JsonConvert.SerializeObject(add_f);

实体类代码

public class addf
    {
        public int id;
        public string text;
        // public int fid;
        public List<adds> add_s;
    }
    public class adds
    {
        public int id;
        public string text;
        // public int fid;
        public List<addt> add_t;
    }
    public class addt
    {
        public int id;
        public string text;
        // public int fid;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值