在做项目的时候,需要把一个对象数据转为json,使用Newtonsoft 转化的方法如下:
//这是一个房间的数组,其中每个房间又有一个桌位的数组,要把这个复杂的数据结构变化为JSON,其实非常容易:
public List<tianMenu.Model.mroom> DataTableToList(DataTable dt)
{
mtable mTable = new mtable();
List<tianMenu.Model.mroom> modelList = new List<tianMenu.Model.mroom>();
int rowsCount = dt.Rows.Count;
if (rowsCount > 0)
{
tianMenu.Model.mroom model;
for (int n = 0; n < rowsCount; n++)
{
model = new tianMenu.Model.mroom();
if(dt.Rows[n]["ID"]!=null && dt.Rows[n]["ID"].ToString()!="")
{
model.ID=int.Parse(dt.Rows[n]["ID"].ToString());
}
if(dt.Rows[n]["room_name"]!=null && dt.Rows[n]["room_name"].ToString()!="")
{
model.room_name=dt.Rows[n]["room_name"].ToString();
}
if(dt.Rows[n]["remark"]!=null && dt.Rows[n]["remark"].ToString()!="")
{
model.remark=dt.Rows[n]["remark"].ToString();
}
modelList.Add(model);
model.tableList = mTable.GetModelList("room_id="+model.ID);
}
}
return modelList;
}
tianMenu.BLL.mroom room=new BLL.mroom();
List <tianMenu.Model.mroom> rooms= room.GetModelList("");
string xx= Newtonsoft.Json.JsonConvert.SerializeObject(rooms);
Response.Write("<hr>");
Response.Write(xx);
转回来的方法:
JsonConvert.DeserializeObject(of tianMenu.BLL.mroom())(xx);