• JSON入门指南--服务端处理JSON


    平时公司使用的ASP.NET MVC3来开发Web项目,其实在ASP.NET中已经原生的支持JSON。所以基本不需要引进Newtonsoft.Json.dll。下面看在MVC4中,后台生成JSON数据,前端使用Ajax调用。然后就是前端使用POST请求,发送JSON格式,后台程序来处理。

    1.后台生成JSON格式数据,前端使用Ajax调用

    后台代码:

    public JsonResult GetList()
            {
                ArrayList eventlist = new ArrayList();
                for (int i = 0; i < 3; i++)
                {
                    Hashtable ht = new Hashtable();
                    ht.Add("eventid", i + 1);
                    ht.Add("eventname", "测试活动");
                    ht.Add("eventdata", "2014-04-02");
                    ht.Add("eventlocation", "公司");
                    eventlist.Add(ht);
                }
                return Json(new { list = eventlist, count = eventlist.Count }, JsonRequestBehavior.AllowGet);
            }

     前端调用代码:

    $.ajax({
                url: "/Home/GetList",
                success: function (data) {
                    var eventlist =data.list;
                    for(var index in eventlist){
                        console.log(eventlist[index].eventname);
                    }
                    console.log(data.count);
                }
            });

    2.前端使用POST请求,发送JSON格式数据给后台

     页面放置一个button,代码片段为:<input type="button" id="btn_send" value="Send" />

    $("#btn_send").click(function () {
                var person1 = new Object();
                person1.Name = "Superman";
                person1.Age = 20;
    
                var person2 = new Object();
                person2.Name = "BBB";
                person2.Age = 22;
    
                var arr = [];
                arr.push(person1);
                arr.push(person2);
    
                $.ajax({
                    url: '/Home/AddUser',
                    type: "POST",
                    data: JSON.stringify(arr),
                    success: function (data) {
                        console.log(data);
                    }
                });
            });

    后台代码: 

    [HttpPost]
            public JsonResult AddUser()
            {
                string json = string.Empty;
                using(var reader=new StreamReader(HttpContext.Request.InputStream))
                {
                    json = reader.ReadToEnd();
                }
                bool result = false;
                string message = string.Empty;
    
                var personlist = new JavaScriptSerializer().Deserialize<List<Person>>(json);
                foreach(Person p in personlist){
                    result = true;
                    message += p.Name + ":" + p.Age;
                }
                return Json(new { result=result,message=message});
            }
            public class Person
            {
                public string Name { get; set; }
                public int Age { get; set; }
            }

     很多人会问我,使用了MVC3,为什么不在前端使用Model,然后绑定数据,这样后台处理方便,而已编辑的时候,前端基本不要做什么事情。其实这样考虑是为了把前端和后台完全分离出来,前端使用AngularJS做数据的绑定。前端和后台数据的传输格式就使用JSON。后面我们会研究ASP.NET Web API如何做到前端和后台完全分离的。

     参考网址: http://www.dotblogs.com.tw/kevintan1983/archive/2012/12/26/86013.aspx

  • 相关阅读:
    Andoid studio 使用Zxing扫描二维码
    WebServices新建及连接数据库
    Android 字典
    ADB Android Device Monitor 导出文件错误
    Android Studio 新建项目默认布局修改
    第九周时间进度表
    第七周学习进度表
    第六周学习进度表
    最优买书问题
    找水王2
  • 原文地址:https://www.cnblogs.com/liminjun88/p/3642989.html
Copyright © 2020-2023  润新知