c数据的序列化和反序列化(推荐版)

更新时间:2023-05-21 17:25:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

c#数据的序列化和反序列化(推荐版)

一段时间没有写东西了,不是因为俺懒,也不是因为俺忙,是因为俺上不了网....

今天项目中用到了数据的序列化和反序列化,数据用的是EF自动生成的代码,开始用的.net 自带的DataContractJsonSerializer进行序列化和反序列化,当代码写完以后,调试,我X(原谅我的脏话,因为确实让我生气),实体因为有

[DataContractAttribute(IsReference=true )] 这样一个属性,提示不能序列化,当然手改一下啦,改完以后,提示基类EntityObject 的这个属性不可以

MY God!!

后来也是因为DataContractJsonSerializer 反序列化成集合的时候不好使,所以才下定决心废弃。采用了第三方的东西:传说中的

今天我也是要说这个组件序列化和反序列化的功能:

废话少说,线上model ,作为提供数据的使用

这里主要是作为测试时的数据源

接下来是序列化的代码,为了对比清楚,先奉上.net 自带的方法:

返回的是个字符串,集合序列化的方法类似;

下边是的代码:

JsonConvert .SerializeObject (list, Formatting.None );有且只有一行!!!!当然首先得添加

的引用

接下是反序列化的代码,.net 自带:

///<summary>

///将json 数据转化为对象

///</summary>

///<param name="entity"></param>

///<param name="jsonstring"></param>

///<returns></returns>

public wf_Task_Inbox JsonToEntity(string jsonstring)

{

DataContractJsonSerializer

using

{

return serializer.ReadObject(mStream) as wf_Task_Inbox;

}

}

(MemoryStream serializer mStream = = new new DataContractJsonSerializer(typeof(wf_Task_Inbox)); MemoryStream(Encoding.UTF8.GetBytes(jsonstring)))

同时也是因为自带的木有泛型的扩展,所以不太喜欢,的方法:

JsonConvert.DeserializeObject<List<wf_Task_Inbox>>(jsonstring) ; 这个是集合的,当然单个对象的怎么弄,你懂的,去掉《T》就行了呗....

生成的序列化数据是标准的json格式:

[{"ID":"0","Name":"姓名:0"},{"ID":"1","Name":"姓名:1"},{"ID":"2","Name":"姓名:2"},{"ID":"3","Name":"姓名:3"},{"ID":"4","Name":"姓名:4"},{"ID":"5","Name":"姓名:

5"},{"ID":"6","Name":"姓名:6"},{"ID":"7","Name":"姓名:7"},{"ID":"8","Name":"姓名:8"},{"ID":"9","Name":"姓名:9"}]

最后附上的下载地址,下载包里有帮助和各个版本的

本文来源:https://www.bwwdw.com/article/x2m4.html

Top