Json在列表中反序列化列表

时间:2011-05-09 06:29:45

标签: c# json.net

是否可以使用JsonConvert.DeserializeObject在列表中反序列化列表?

Object: 
public class BusinessList
{
    public long Number{ get; set; }
    public string BusinessUnitCode { get; set; }
    public List<string> Codes { get; set; }
}

Json:

{"Number":111121,"BusinessUnitCode":"ABC","Codes":["11111-2","14333-8"]}

Deserialization: 

var dataList = (List<BusinessList>)JsonConvert.DeserializeObject(reciveObject, typeof(List<BusinessList>), jsonSerializerSettings);

错误:

"Expected a JsonObjectContract or JsonDictionaryContract for 
type 'System.Collections.Generic.List`1
[PathResultsPortal.UI.Controllers.AnalyteDetails]', 
got 'Newtonsoft.Json.Serialization.JsonArrayContract'."

如果从BusinessList对象中删除代码列表,它可以正常工作,它似乎无法在列表中处理列表,是否可能?

1 个答案:

答案 0 :(得分:0)

public class BusinessList 
{
    [JsonProperty(PropertyName = "Number")]
    public long Number{ get; set; }

    [JsonProperty(PropertyName = "BusinessUnitCode ")]
    public string BusinessUnitCode { get; set; }

    [JsonProperty(PropertyName = "Codes ")]
    public List<Codes> Codes { get; set; }
}

public class Codes
{
    public string Code { get; set; }
}

试试这个