Json对象序列化与反序列化
2016-06-20 16:54 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); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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语句:使用策略模式优化代码结构