问题描述
我有一个 json,我正在阅读并尝试将其转换为 PackageCategory 列表
[
{
"PackageCategory": [
{
"Size": "xxx","Dimension": {
"Height": "000.0","Length": "1200.0","Breadth": "3300.0"
},"Cost": "10.0m"
},{
"Size": "yyy","Dimension": {
"Height": "1200.0","Length": "1400.0","Breadth": "5500.0"
},"Cost": "790.5m"
},{
"Size": "zzz","Dimension": {
"Height": "2550.0","Length": "4030.0","Breadth": "1600.0"
},"Cost": "8.5m"
}
]
}
]
我想将其反序列化为 C# 列表对象 List
public class PackageCategory
{
public string Size { get; set; }
public PackageSize Dimension { get; set; }
public decimal Cost { get; set; }
}
public class PackageSize
{
public double Height { get; }
public double Length { get; }
public double Breadth { get; }
}
我正在使用以下代码,但为列表对象 listObjects 获取空值
using (StreamReader r = new StreamReader(@"\listofPackageCategory.json"))
{
string json = r.ReadToEnd();
var listObjects = JsonConvert.DeserializeObject<List<packageCategory>>(json)
}
也试过
JavaScriptSerializer ser = new JavaScriptSerializer();
var listObjects = ser.Deserialize<List<PackageCategory>>(json);
这也不起作用 请帮忙寻找解决方案
解决方法
您需要一个 Root
对象来反序列化:JsonConvert.DeserializeObject<List<Root>>
:
class Root
{
public List<PackageCategory> PackageCategory;
}