代码改变世界

json的序列化和反序列化

  糯米粥  阅读(515)  评论(0编辑  收藏  举报

后台把一个对象序列化发送到前台。注:不要序列化table,会有异常。应该是list或者字典

 PhotoBLL bll = new PhotoBLL();
        List<Photos> list =  bll.GetAllPhotos();
        
        //输出json格式的字符串
        JavaScriptSerializer jss = new JavaScriptSerializer();  //JavaScriptSerializer命名空间 using System.Web.Script.Serialization;
        string json = jss.Serialize(list);

        context.Response.Write(json);

 

前端接收

方法一:当前端是用$.getJson方式:

$.getJSON("xxx.ashx, function (json) {

   for (var i = 0; i < json.length; i++) {

    var id = json[i].id;

    ...........

    })

})

方法二:当前端是用$.post/get方式:

$.post("xxx.ashx?, function (data) {

   var json = eval(data);  //用eval解析json对象

   for (var i = 0; i < json.length; i++) {

      var id = json[i].id;

      ...........

      })

})

 

前端用js拼json发送到后台,并反序列化获取数据

比如前端格式:

 var data = { "photo": "{\"PTitle\":\"" + title + "\",\"PUrl\":\"" + url + "\",\"PTypeId\":1,\"PUserId\":1,\"PDes\":\"\"}","type":1 };//斜杠是转义。别写错

 

 $.ajax({
                url: '/ashx/Enqeiry/ItemCode.ashx',
                data: { "Enquiry": jsonTemp },  //serialize  data
                async: false,
                type: 'post',
                success: function (msg) {
                    if (msg == "ok") {
                        try {
                            opener.location.reload(); //刷新父页面
                        } catch (e) {

                        }
                    }
                },
                error: function () { }
            });

 

后台接收并反序列化

    string type = context.Request.Form["type"];
        // {"PTitle":"","PUrl":"","PTypeId":1,"PUserId":1,"PDes":""}
        string json = context.Request.Form["photo"];
        
        JavaScriptSerializer jss = new JavaScriptSerializer();
        //把json格式的字符串 转化成photos对象
        Photos photo = jss.Deserialize<Photos>(json);

 

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
'
点击右上角即可分享
微信分享提示