我尝试使用Newtonsoft.Json在c#中反序列化JSON响应
下面是我使用的JSON响应类型的一个示例:
{
"version": "1.0",
"fixes": [
{
"fix1": "this is fix 1",
"fix2": "this is fix 2",
"fix3": "this is fix 3"
}
]
}
在这个响应中,可以有任意数量的“修复”。
我的对象类如下所示:
public class Update
{
public class Fix
{
public IDictionary<string, string> Values { get; set; }
}
public class Root
{
public string version { get; set; }
public List<Fix> fixes { get; set; }
}
}
这里我反序列化http响应并尝试获取修复的值,但所有值都为null:
var root = JsonConvert.DeserializeObject<Update.Root>(strContent);
Update.Fix fixes = root.fixes[0];
foreach (var fix in fixes.Values)
{
string test = fix.Value.ToString();
}
2条答案
按热度按时间bwitn5fc1#
去掉类
Fix
。在Root
中有public List<Dictionary<string, string>> fixes { get; set; }
:然后,要遍历所有键和值,可以使用
SelectMany()
将字典列表投影到键/值对的可枚举对象中:演示小提琴here。
wfveoks02#
你的修正是一个字典,不是一个集合,但是你可以把它转换成一个集合
输出
或字典
输出