【发布时间】:2016-08-22 14:22:48
【问题描述】:
我正在尝试编写一个通用模式来反序列化我的 json 数组字符串。 我在下面创建了以下对象:
public interface IDataResponse<T> where T: class
{
List<T> Data { get; set; }
}
public class DataResponse<T>: IDataResponse<T> where T: class
{
[JsonProperty("value")]
public List<T> Data { get; set; }
}
我的json格式
{
"values":{
"value":[
{
"value_1":"aaaaaa",
"value_2":"aaaaaa",
"value_3":"aaaaaa"
},
{
"value_1":"bbbbbb",
"value_2":"bbbbbb",
"value_3":"bbbbbb"
}
]
}
}
现在我可以像这样使用这个模式了
var myData = JsonConvert.DeserializeObject<List<DataResponse<MyData>>>(result);
其中 result 是 json 数组字符串。
但是运行这段代码,我得到了下面的异常
无法将 JSON 数组(例如 [1,2,3])反序列化为类型 ' ',因为类型需要 JSON 对象(例如 {“name”:“value”})才能正确反序列化
如何解决这个错误?
【问题讨论】:
标签: c# arrays json generics serialization