关键是看你的类型如何定义,这里可以没有menus这个前缀。 关于你的这样的格式,定义的类型就是这样的: public class Menu { public string menuname {get;set;} public string icon {get;set;} public string url {get;set;} public List<Menu> menus {get;set;} } 当menuname、icon、url均为null的时候,序列化到Json就是{"menus":[...]}的形式,请注意,这里的双引号必须存在,menus上没有双引号是错误的
foreach (var row in data)
{
ad.Add(new Address() { Id = row.Id.ToString(), Duty = row.Duty,Name=row.Name, Addr = row.Addr });
}
JavaScriptSerializer jss = new JavaScriptSerializer();
string json = jss.Serialize(ad);
context.Response.Write(json);在前台反序列化:(我的是JQuery)var dhl=$.parseJSON(data);
再问一下
var menulist = { menus:
[{ menuname: "设备管理" , icon: "icon-blank" , menus:
[{ menuname: "设备管理", icon: "icon-itemblue", url: "Device/Info/List.aspx" },
{ menuname: "设备控制", icon: "icon-itemblue", url: "Device/Control/List.aspx" }]
}]
};里面的menus: 是否是必须的
如何生成的时候带着个前缀 我看一般的生成是这样的
var menulist = {
[{ menuname: "设备管理" , icon: "icon-blank" , menus:
[{ menuname: "设备管理", icon: "icon-itemblue", url: "Device/Info/List.aspx" },
{ menuname: "设备控制", icon: "icon-itemblue", url: "Device/Control/List.aspx" }]
}]
};
关于你的这样的格式,定义的类型就是这样的:
public class Menu
{
public string menuname {get;set;}
public string icon {get;set;}
public string url {get;set;}
public List<Menu> menus {get;set;}
}
当menuname、icon、url均为null的时候,序列化到Json就是{"menus":[...]}的形式,请注意,这里的双引号必须存在,menus上没有双引号是错误的
var _menus;
$.getJSON("/ashx/UserMenu.ashx", function (data) {
_menus = data.toString();
});
ashx里面返回的是 这样 我想赋值给一个变量
{ menus:
[{ menuname: "设备管理" , icon: "icon-blank" , menus:
[{ menuname: "设备管理", icon: "icon-itemblue", url: "Device/Info/List.aspx" },
{ menuname: "设备控制", icon: "icon-itemblue", url: "Device/Control/List.aspx" }]
}]
};
js中判断一下data是否有值,转换成对象_menus = eval(data);