c# Json 自定义类作为字典键时,序列化和反序列化的处理方法
2016-12-15 18:02
886 查看
一般情况下,Newtonsoft.Json.dll对
处理办法代码所示:
Dictionary<int,object>、Dictionary<string,object>等序列化与反序列化都是成功的,但是使用自定义类作为键,则会报错,如下图
处理办法代码所示:
publicclassTestClass
{
publicstringName="";
publicTestClass(stringn)
{
Name=n;
}
publicoverrideboolEquals(objectobj)
{
TestClassother=objasTestClass;
if(other==null)
returnfalse;
if(!base.GetType().Equals(obj.GetType()))
returnfalse;
return(this.Name.Equals(other.Name));
}
publicoverrideintGetHashCode()//重要
{
returnName.GetHashCode();
}
publicstaticexplicitoperatorTestClass(stringjsonString)
{
returnNewtonsoft.Json.JsonConvert.DeserializeObject<TestClass>(jsonString);
}
publicoverridestringToString()//重要
{
returnNewtonsoft.Json.JsonConvert.SerializeObject(this);
}
}
相关文章推荐
- JSON序列化和反序列化集合、字典、数组的处理
- C#通用Json格式序列化和反序列化的方法
- 在SpringMVC中,当Json序列化,反序列化失败的时候,会抛出HttpMessageNotReadableException异常, 当Bean validation失败的时候,会抛出MethodArgumentNotValidException异常,因此,只需要在ExceptionHandler类中添加处理对应异常的方法即可。
- C# MD5加密的方法+一般处理程序使用Session+后台Json序列化
- C#Json序列化、反序列化之Dictionary 字典类型
- C#在Json反序列化中处理键的特殊字符
- AJAX JSON中日期类型DateTime格式化的序列化自定义对象以及自定义类型参数的问题处理
- 一种自动的将自定义类序列化为JSON的方法
- python Json的一点收获,自定义序列化方法
- C#中的Json的序列化和反序列化
- c#中的Json的序列化和反序列化
- C#对 Json的序列化和反序列化会出现“k_BackingField”
- C# 使用JSON对数据序列化和反序列化.
- c#中的Json的序列化和反序列化
- c# 读取json 写json 序列化与反序列化 .net 4.0
- JavaScriptSerializer序列化和反序列化JSON:使用自定义JavaScriptConverter
- 一种自动的将自定义类序列化为JSON的方法
- JSON序列化和反序列化日期时间的处理
- 一个自定义的json序列化对象的方法
- [原创]一种自动地将继承自NSObject的自定义类序列化成JSON的方法