我有一个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/