我有一个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?
有什么问题? 感谢。
答案 0 :(得分:1)
您需要创建一个包装类来正确反序列化:
[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>>();