json表示数组问题,求教!!!
--------------------编程问答-------------------- 自己顶一下,求高手! --------------------编程问答-------------------- 或者加QQ 937696994 --------------------编程问答-------------------- 在线顶啊,求大神啊! --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 为什么没有看到第一张传说中的图的? --------------------编程问答-------------------- 我排序排错了,是第三张 --------------------编程问答-------------------- 貌似你的json和你的数据没有什么关系 --------------------编程问答-------------------- 序列化对象--------------------编程问答--------------------
List<model> list=你的数据
string json = "";
JavaScriptSerializer jss = new JavaScriptSerializer();
json = jss.Serialize(list);
ID是自动编号,FID就是他的父级ID,也是就是ID,然后实体类里面有个Children数组,我要把数据里面有FID都放到children里面,第三张图片就是列子。 --------------------编程问答-------------------- 分两步做,
1,序列化chlid的为一个字符串,{"id":"1","title":"abcd"}
2,把所有的拼合成为你要的格式 --------------------编程问答-------------------- 你是想要一棵树吗? --------------------编程问答-------------------- 就把他拼接成你想要的json格式就行了,如果要成树形的,先通过递归把数据在datatable中排列好,然后在把datatable拼接成你的格式 --------------------编程问答--------------------
[WebMethod]
public static string JsonData()
{
DataTable dt = Data();
return CreateJsonParameters(dt);
}
#region 原始数据
public static DataTable getData()
{
SqlConnection con = new SqlConnection(conStr);
string sql = "select * from T1";
SqlDataAdapter da = new SqlDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
#endregion
#region 递归重新排列数据
public static DataTable Data()
{
DataTable dt = getData();
DataTable nDt = dt.Clone();
TreeData(dt, nDt, "0");
return nDt;
}
private static void TreeData(DataTable dt, DataTable nDt, string parentID)
{
DataRow[] dr = dt.Select("Tparents='" + parentID + "'");
if (dr.Length > 0)
{
for (int i = 0; i < dr.Length; i++)
{
nDt.Rows.Add(dr[i].ItemArray);
parentID = dr[i]["Tid"].ToString();
TreeData(dt, nDt, parentID);
}
}
}
#endregion
//生成json格式
public string CreateJsonParameters(DataTable dt)
{
StringBuilder JsonString = new StringBuilder();
//Exception Handling
if (dt != null && dt.Rows.Count > 0)
{
JsonString.Append("{ ");
JsonString.Append("\"Head\":[ ");
for (int i = 0; i < dt.Rows.Count; i++)
{
JsonString.Append("{ ");
for (int j = 0; j < dt.Columns.Count; j++)
{
if (j < dt.Columns.Count - 1)
{
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\",");
}
else if (j == dt.Columns.Count - 1)
{
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\"");
}
}
/**/
/*end Of String*/
if (i == dt.Rows.Count - 1)
{
JsonString.Append("} ");
}
else
{
JsonString.Append("}, ");
}
}
JsonString.Append("]}");
return JsonString.ToString();
}
else
{
return null;
}
}
看样子把"生成json格式"的那个方法,HEAD改成people就可以了,你自己稍微调下 --------------------编程问答-------------------- 最后一句,记得结贴。世风日下啊 --------------------编程问答-------------------- json序列化
只是json序列化的问题,方法有很多种,自己拼字符串是不可取的
补充:.NET技术 , ASP.NET