反序列化包含int列表作为属性的对象

时间:2014-02-26 17:09:21

标签: json serialization json.net

我正在尝试使用Newtonsoft.Json.JsonConvert将Json反序列化为我的对象。 我的json是:{"SelectedContentsID[]":"31807,32493,39517","pageSize":"20","SisconContentSubDialogEnum":"0","searchCriteria":"","pageIndex":"1"}

,各自的班级是:

[DataContract]
public class ContentGetHandlerDTO : ListBaseHandlerDto
{
    [DataMember(Name = "SelectedCourseId")]
    public int SelectedCourseId { get; set; }
    [DataMember]
    public System.Collections.Generic.List<int> SelectedContentsID { get; set; }
    public ContentGetHandlerDTO() {
        this.SelectedContentsID = new System.Collections.Generic.List<int>();
    }
}

ListBaseHandlerDto只是一个包含一些公共属性的类。 问题是,deserializer方法只是忽略int列表并带来一个空列表。

1 个答案:

答案 0 :(得分:0)

您的Json看起来不正确,它应该如下所示:

{
"SelectedContentsID":[31807,32493,39517],
"pageSize":"20",
"SisconContentSubDialogEnum":"0",
"searchCriteria":"",
"pageIndex":"1"
}

具体看看你的SelectedContentsID, 你有:

"SelectedContentsID[]":"31807,32493,39517"

当json int数组看起来像这样:

"SelectedContentsID":[31807,32493,39517]

如果你感到困惑,这里有一个非常好的参考 - http://www.w3schools.com/json/json_syntax.asp