C# Json数据解析
今天碰到一个问题,需要通过json格式,将前台的数据提交到后台去,然后由后台解析后加以使用。使用Json格式进行数据传递,好处显而易见。我这儿使用Json格式的原因主要是,可以只将数据绑定到一个域上,而不需要绑定多个域进行传递,方便数据的调用。
上网找了一些方法,里面使用的一些接口都需要再Silverlight中使用,而不能在web环境中使用。不过web框架下还是保留了一种Json数据的接口:JavaScriptSerializer。
其实将json数据解析成后台数据,就是对数据的反序列化。
下面我就做个简单的例子说明一下。
在前台先将一系列Json数据放到一个数组中:
$(function(){ var json_str = new Array(); json_str.push(setJdata());//数组中只有一个Json数据 }); function setJdata() { var jdata = { "ReleaseStatus": "更新", "ContentId": "CON0000007", "ContentType": "虎の巻", "ContentVolumn":"Vol.7", "ContentTitle":"标题~~~~~", "ReleaseStartTime": "2012/09/04 02:00", "ReleaseEndTime":"-" } return jdata; }
当然,在提交到后台前还先需要将Json数据字符串化,以便后台进行解析。
string Json_str = "[{\"ReleaseStatus\":\"更新\",\"ContentId\":\"CON0000007\",\"ContentType\":\"虎の巻\",\"ContentVolumn\":\"Vol.7\",\"ContentTitle\":\"标题~~~~~\",\"ReleaseStartTime\":\"2012/09/04 02:00\",\"ReleaseEndTime\":\"-\"}]";
这时候用MVC3自带的类库进行解析:using System.Web.Script.Serialization;
JavaScriptSerializer js = new JavaScriptSerializer();
List<ContentModel> list = js.Deserialize<List<ContentModel>>(list.JsonData);
从这段代码我们可以看到,使用这个类库对Json数据进行解析,可以直接解析为所要的对象(ContentModel)。
如果Json数据是一个数组,还能解析为所要对象的数组对象(List<ContentModel>)。
需要注意的是:对象(ContentModel) 必须为可反序列化对象。
[Serializable] [DataContract]//得在定义对象类前,先声明这两个属性 public class ContentModel { public string ContentId { get; set; } public string ContentType { get; set; } .......................... }
以上是对数据的反序列化,那么数据的序列化该怎么做呢??
很简单 ,看下面一段代码:
JavaScriptSerializer serializer = new JavaScriptSerializer(); result.TableData = serializer.Serialize(result.InputContentList);
只要调用JavaScriptSerializer的Serialize方法就可以对数据进行序列化,最后得到一个string型的json数据。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?