【发布时间】:2018-02-05 09:40:14
【问题描述】:
我想借助 Newtonsoft.Json 将 JSON 字符串反序列化为 Version 对象。
History 是一个包含 int 键和 TaskObject 值的字典。关键是一个动态数字。
这是 JSON 的一个简短示例:
[
{
"CurrentVersion": 3,
"TaskObject": {},
"History": {
"1": {},
"2": {}
},
"ObjectTypeName": "the type"
}
]
我的班级
public class Version : Lib.Objects.Task
{
public int CurrentVersion { get; set; }
public Lib.Objects.Task TaskObject { get; set; }
public Dictionary<int, Lib.Objects.Task> History { get; set;}
public string ObjectTypeName { get; set; }
}
代码
string rawJSON;
using (var wc = new WebClient())
rawJSON = wc.DownloadString(uri);
var version = JsonConvert.DeserializeObject<Objects.Version>(rawJSON); //throws a JsonSerializationException
但我得到一个例外
Newtonsoft.Json.JsonSerializationException: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type
任何想法如何解决这个问题,以便我可以将 JSON 反序列化为 Version 对象?
编辑
原来我收到的是 JSON 数组,所以我编辑了我的示例。
【问题讨论】:
-
你在 rawJSON 中获得价值了吗?
标签: c# json json-deserialization