代码改变世界

Json对象序列化与反序列化

  Evan.Pei  阅读(2091)  评论(0编辑  收藏  举报

如果后台的参数数对象,需要在前台传入:

JS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//创建JS对象<br>      var CUTTING_TABLET_MO = new Object();
            CUTTING_TABLET_MO.CUTTING_TABLET_MO_ID =0;
            CUTTING_TABLET_MO.GO_NO = ""; $("#Lab_GO").html();
            CUTTING_TABLET_MO.MO_NO = $("#Lab_MO").html();
            CUTTING_TABLET_MO.STATUS = "Doing";
            CUTTING_TABLET_MO.REMARK = "";
            CUTTING_TABLET_MO.CREATE_USER_ID = $("#h_userid").val();
            CUTTING_TABLET_MO.CREATE_DATE = new Date().toLocaleString();
            CUTTING_TABLET_MO.LAST_MODI_USER_ID = $("#h_userid").val();
            CUTTING_TABLET_MO.LAST_MODI_DATE = new Date().toLocaleString();
        var CUTTING_TABLET_CUT_LOT = new Object();
            CUTTING_TABLET_CUT_LOT.CUTTING_TABLET_CUT_LOT_ID =0;
            CUTTING_TABLET_CUT_LOT.CUTTING_TABLET_MO_ID =0;
            CUTTING_TABLET_CUT_LOT.CUT_LOT = $("#lbl_CutLotNo").val();
            CUTTING_TABLET_CUT_LOT.REMARK = "";
            CUTTING_TABLET_CUT_LOT.STATUS = "Doing";
            CUTTING_TABLET_CUT_LOT.MARKER_ID = $("#h_MarkerId").val();
            CUTTING_TABLET_CUT_LOT.CREATE_USER_ID = $("#h_userid").val();
            CUTTING_TABLET_CUT_LOT.CREATE_DATE = new Date().toLocaleString();
            CUTTING_TABLET_CUT_LOT.LAST_MODI_USER_ID = $("#h_userid").val();
            CUTTING_TABLET_CUT_LOT.LAST_MODI_DATE = new Date().toLocaleString();
           //将对象序列化成Json对象
            var cuttingTabletObj = JSON.stringify(CUTTING_TABLET_MO);
            var cuttingCutLotObj = JSON.stringify(CUTTING_TABLET_CUT_LOT);
           //将对象序列化成JSON后传入后台,使用JqueryAjax
            publicAjax(ajaxURL + "CuttingTable/MoStateAndCutLotStateUpdate", "{ MoObj: '" + cuttingTabletObj + "', CutObj: '" + cuttingCutLotObj + "' }", function (result) {
        });

  Controller.cs 的代码

1
2
3
4
5
public void MoStateAndCutLotStateUpdate(string MoObj, string CutObj)
        {<br>            //实例化用于序列化的类,using System.Web.Script.Serialization;
            JavaScriptSerializer Serializer = new JavaScriptSerializer();<br>            //实例化对象
            CUTTING_TABLET_MO cuttingTabletmo = Serializer.Deserialize<CUTTING_TABLET_MO>(MoObj);
            CUTTING_TABLET_CUT_LOT cuttingTableCutLot = Serializer.Deserialize<CUTTING_TABLET_CUT_LOT>(CutObj);<br>            //如果是集合使用            //List<CUTTING_TABLET_MO> cuttingTabletmo = Serializer.Deserialize<list<CUTTING_TABLET_MO>>(MoObj);}

  -------------------

JS1将对象序列化为json

1
2
3
4
function(result){
        var json = JSON.stringify(result);//将对象序列化
        sessionStorage.setItem("shrinkageData", json);//保存缩略信息,拉布页面扫描需判断
}

JS反序列化为对象

1
2
var json=JSON.parse(sessionStorage.getItem("shrinkageData"));//反序列化
 var shrinkageData = json;

c#

using Newtonsoft.Json;

复制代码
Hashtable hash = new Hashtable();
hash.Add("key1", "val1");
hash.Add("key2", "val2");
hash.Add("key3", "[1,2]");
hash.Add("key4", "[{'k':'v'},{'k1':'v1'}]");
string json = JsonConvert.SerializeObject(hash);

php p = new php();
p.age = 20;
p.name = "姓名";
string json2 = JsonConvert.SerializeObject(p);//序列化对象
php p2 = JsonConvert.DeserializeObject<php>(json2);//反序列化对象
复制代码

 

1
2
3
4
//js obj: JSON.stringify(points)<br>"[{},{}]"
List<PointsInfo> p2 = JsonConvert.DeserializeObject<List<PointsInfo>>(obj);
"{}"
Points p2 = JsonConvert..DeserializeObject<Points>(obj);

  

 

 

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示