您的位置:首页 > Web前端 > JavaScript

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);
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: