C# 在JSON.NET中反序列化对象
我所拥有的:C# 在JSON.NET中反序列化对象,c#,json,serialization,asp.net-web-api,C#,Json,Serialization,Asp.net Web Api,我所拥有的: 包含businesslogic并与JSON一起工作的WebAPI服务 向WebAPI发送请求并等待响应的客户端 一个接口“IBusinesspartner”和从接口继承的两个对象:“Businesspartner”和“Potential” 我需要的是: 我需要反序列化一个JSON接口,该接口包含一些其他自定义对象。 这样地: IBusinesspartner public string Name { get; set; } public string Street { get; s
public string Name { get; set; }
public string Street { get; set; }
public SalesDivision Division { get; set; }
public IDictionary<SalesDivison, Money> TurnoverPerDivision { get; set; }
公共字符串名称{get;set;}
公共字符串Street{get;set;}
公共销售部门部门{get;set;}
公共IDictionary TurnOverpredivision{get;set;}
我已经做了:
我使用thread实现了一个自定义转换器,它似乎可以很好地反序列化作为WebAPI服务响应的JSON字符串,直到它需要反序列化字典。。然后我得到以下错误消息:
无法将字符串“BL.Service.Models.SalesDivision”转换为字典键类型“data.model.SAP.SalesDivision”。创建一个TypeConverter,将字符串转换为键类型对象。路径“TurnoverPerSalesDivision.BL.Service.Models.SalesDivision”,第1行,位置17672
问题是:
是的,我知道错误消息告诉我该做什么,但我仍然不知道下一步要做什么。我应该为IBusinesspartner接口重新设计/扩展刚刚实现的转换器,还是为我的每个对象创建一个自己的转换器?这样的转换器是什么样子?有什么例子吗?我很高兴能得到任何帮助和信息。SalesDivision是否用DataContract和DataMember属性装饰?这些可能是正确进行反序列化所必需的,但现在它们不是。但要改变这一点并不是一个问题,而且IDictionary也可能是一个问题。用两个阵列(SalesDivision[],Money[])替换它,然后在另一端重新创建它,怎么样?(看起来很糟糕,我知道。)实际上我不想改变任何逻辑。我认为这应该是可能的,JSONConvertery添加了这些-