我有一个json数据:

"{\"list\":[{\"PlId\":1,\"PstId\":1,\"MonthlyValue\":\"00,00\"},{\"PlId\":2,\"PstId\":1,\"MonthlyValue\":\"00,00\"},{\"PlId\":3,\"PstId\":1,\"MonthlyValue\":\"00,00\"},{\"PlId\":4,\"PstId\":1,\"MonthlyValue\":\"00,00\"},{\"PlId\":5,\"PstId\":1,\"MonthlyValue\":\"00,00\"}]}"


我想将json数据转换为List,但JsonConvert.Deserialize(jsonData)返回null。

[Serializable]
public class DecryptedMonthlyPremiumScale
{
    [DataMember]
    public int PlId { get; set; }

    [DataMember]
    public int PstId { get; set; }

    [DataMember]
    public string MonthlyValue { get; set; }
}


我尝试了这种方法:How to post an array of complex objects with JSON, jQuery to ASP.NET MVC Controller?

怎么了?
谢谢。

最佳答案

您需要创建一个包装器类以正确反序列化:

[Serializable]
public class DecryptedMonthlyPremiumScale
{
    [DataMember]
    public int PlId { get; set; }

    [DataMember]
    public int PstId { get; set; }

    [DataMember]
    public string MonthlyValue { get; set; }
}

public class Root
{
    public IList<DecryptedMonthlyPremiumScale> list {get;set;}
}

var obj = JsonConvert<Root>(json);


另一种方法是使用JObject获取根元素,然后反序列化:

var parsed = JObject.Parse(json)["list"].ToObject<IList<DecryptedMonthlyPremiumScale>>();

关于javascript - 从C#中的Json数组转换为List <T>或T [],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27419285/

10-12 13:08