[C#] Json反序列化(Deserialize)为物件(Object)

有时候会在前端收集好需要的资讯,在送回后端做资料的处理,这时候就可以用Json的格式到后端来做操作。

JSON.NET

首先到Github下载.dll来引用

    using Newtonsoft.Json;

单笔Json To Object

JavaScript

先在前端收集好资料后,用JSON.stringify()将物件转换为Server可以接受的格式String

   var carObj = {        COLOR: "red",        SPEED: 100    };    $.ajax({        url: "../../../Generic/C_sharp.ashx",        type: "post",        data: {            CAR: JSON.stringify(carObj)        },        success: function () {        },        error: function (e) {            console.log(e)            alert(0);        }    });

CS

建立一个CAR类别,里面的栏位记得要设定成public,并且栏位名称需和前端的物件命名一致,不然它会找不到对应的名称,而取不到值。

     public class CAR {        public string COLOR;        public int SPEED;    }

使用JsonConvert.DeserializeObject<T>(),将Json转换成物件。

    public void ProcessRequest(HttpContext context)    {        string aCarJson = context.Request.Form["CAR"].ToString();        //Json 转 Obj,并直接丢到类别中。        CAR aCAR = JsonConvert.DeserializeObject<CAR>(aCarJson);            }  

此时aCAR可以取得COLORSPEED的值了。


不过这只适合只有单一笔的资料处理,如果今天是需要处理多笔数的资料,那就需要稍微做个变化。

JavaScript

前端的物件外层多包一个阵列,若有多笔资料的话,则在.push()到阵列里面。

    var carObj = {        COLOR: "red",        SPEED: 100    };    var carObj2 = {        COLOR: "blue",        SPEED: 150    };    var arr = [];    arr.push(carObj);    arr.push(carObj2);        $.ajax({        url: "../../../Generic/C_sharp.ashx",        type: "post",        data: {            CAR: JSON.stringify(arr)        },        success: function () {        },        error: function (e) {            console.log(e)            alert(0);        }    });

CS

后端改用List<T>来接,<T>里面的T为className,这时候一样反序列化,即可上桌食用。
http://img2.58codes.com/2024/emoticon12.gif

    public void ProcessRequest(HttpContext context)    {        string aCarJson = context.Request.Form["CAR"].ToString();        //Json 转 Obj,并直接丢到类别中。        //CAR aCAR = JsonConvert.DeserializeObject<CAR>(aCarJson);        List<CAR> aList = JsonConvert.DeserializeObject<List<CAR>>(aCarJson);    }

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章