ajax,json和$.each()

时间:2022-03-10 12:13:19

json返回的时候,只需要展示部分字段,如果是 ajax从后台获取结果处理,可以使用.select() 等处理结合匿名类,生成需要的字段的匿名类json字符串,返回前端,可以使用$.parseJson() 得到json对象,再通过js处理;
如果是前台页面加载展示,必须使用强类型,弱类型就算拿到了集合的值,却无法使用 集合里面的具体字段,这时就需建立 视图类

 在mvc4中 

ajax调用方法

  $(function () {
            $.ajax({
                   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为定义的类}
      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()
        {
            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

===================================================