json返回的时候,只需要展示部分字段,如果是 ajax从后台获取结果处理,可以使用.select() 等处理结合匿名类,生成需要的字段的匿名类json字符串,返回前端,可以使用$.parseJson() 得到json对象,再通过js处理;
如果是前台页面加载展示,必须使用强类型,弱类型就算拿到了集合的值,却无法使用 集合里面的具体字段,这时就需建立 视图类
在mvc4中
ajax调用方法
$(function () {
$.ajax({
async:false; //同步
async:false; //同步
url: "/Home/Get",
type: "post",
success: function (data) {
var sD = $.parseJSON(data);
var len = sd.length;
$.each(sd, function (index,item) {
});
}
});
});
public ActionResult Get()
{
List<string> list1 = new List<string>() { "A","B","C","D"};
string result1= JsonConvert.SerializeObject(list1);//效率
return Content(result1);
}
后台如果 序列化的 是 List<> 那么,序列化的结果就是 "["A","B","C","D"]" 数组
前端 $.parseJson() 得到的json对象 有 .length属性;
$.each(资源,function(a,b){}) a标示【索引从0开始】 b表示该索引对应的值【A】
========================================================================================
如果ajax调用 {P为定义的类}
后台如果 序列化的 是 List<> 那么,序列化的结果就是 "["A","B","C","D"]" 数组
前端 $.parseJson() 得到的json对象 有 .length属性;
$.each(资源,function(a,b){}) a标示【索引从0开始】 b表示该索引对应的值【A】
========================================================================================
如果ajax调用 {P为定义的类}
public ActionResult Get2()
{
List<P> list1 = new List<P>() {new P(){ Age=25, Name="阿杜"},new P(){ Age=26, Name="本拉登"} };
string result1 = JsonConvert.SerializeObject(list1);//效率
return Content(result1);
}
序列化 结果 "[{"Name":"阿杜","Age":25},{"Name":"本拉登","Age":26}]" json数组
前端 $.parseJson() 得到的json对象 有 .length属性;
$.each(json对象,function(a,b){}) a标示【索引从0开始】 b表示该索引对应的 json对象
============================================================
public ActionResult Get3()
"{"Name":"zs","Age":60}" json字符串
无 .length属性;
a表示 key b表示 value 如 name为key zs为value; 也可以直接 .键 得到值
Dictionnary序列化后也是这样的结论,没有长度属性,each a表示key b表示value
===================================================
序列化 结果 "[{"Name":"阿杜","Age":25},{"Name":"本拉登","Age":26}]" json数组
前端 $.parseJson() 得到的json对象 有 .length属性;
$.each(json对象,function(a,b){}) a标示【索引从0开始】 b表示该索引对应的 json对象
============================================================
public ActionResult Get3()
{
string result1 = JsonConvert.SerializeObject(new P() { Name="zs", Age=60});//效率
return Content(result1);
}
"{"Name":"zs","Age":60}" json字符串
无 .length属性;
a表示 key b表示 value 如 name为key zs为value; 也可以直接 .键 得到值
Dictionnary序列化后也是这样的结论,没有长度属性,each a表示key b表示value
===================================================