不进行文字描述了,直接上代码,时间有限。。。
方法代码
//序列化三级地址 数据为 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;
}