C# 使用Json转换器向字典添加属性
我正在通过JArray.Parse()将一些JSON端点反序列化为C#对象,遇到了一个我不确定如何处理的模式。下面的NunAvailResreasonMap对象具有动态数量的名称/值对;所有名称值都将是整数:C# 使用Json转换器向字典添加属性,c#,json,dictionary,json.net,C#,Json,Dictionary,Json.net,我正在通过JArray.Parse()将一些JSON端点反序列化为C#对象,遇到了一个我不确定如何处理的模式。下面的NunAvailResreasonMap对象具有动态数量的名称/值对;所有名称值都将是整数: { "id": "Customer Service", "operation": "UPDATE", "VoiceIAQStats": { "id": 139, "esdId": 139, ... "n
{
"id": "Customer Service",
"operation": "UPDATE",
"VoiceIAQStats": {
"id": 139,
"esdId": 139,
...
"nUnavailResources": 2,
"nUnavailResReasonsMap": {
"4": 1,
"9": 1
},
"nWorkResources": 0,
"nSelectedResources": 0,
...
"nSLAPercentageHighThreshold": 0
}
}
下面是我的C#对象:
有什么方法可以实现这一点,或者我需要改变我的方法吗?您根本不需要特殊的转换器,只需删除
不可用的ReasonsMaps
类,并使用字典即可:
public class VoiceIaqStats
{
//snip
public Dictionary<int, int> NUnavailResReasonsMap { get; set; }
//snip
}
公共类语音iaqstats
{
//剪断
公共字典nunavalresreasonsmap{get;set;}
//剪断
}
并且转换将开箱即用:
var result = JsonConvert.DeserializeObject<QueueStats>(json);
var result=JsonConvert.DeserializeObject(json);
是否有理由认为不可用的ReasonsMaps甚至需要存在?似乎您可以将字典本身放入VoiceIaqStats,直接将字典放入VoiceIaqStats
中,就像这样:public class VoiceIaqStats{public dictionary nunavalresreasonsmap{get;set;}…}
应该可以正常工作。看到了吗?是的,就是这样,谢谢你的帮助。
public class VoiceIaqStats
{
//snip
public Dictionary<int, int> NUnavailResReasonsMap { get; set; }
//snip
}
var result = JsonConvert.DeserializeObject<QueueStats>(json);