将 Json 文档反序列化为 C# 对象
Deserializing Json document to C# objects
C# 语言。控制台应用程序。
我有一个 json 文件,格式如下:
{"Cars":{"Mercedes": 1,"BMW": 3,"Toyota": 0},"Bikes":{"Kawasaki": 5,"Pulsar": 4}}
我有以下 classes:
public class Vehicles
{
public Cars cars {get; set;}
public Bikes bikes {get; set;}
}
public class Cars
{
Dictionary<string, int> carcount {get; set;}
}
public class Bikes
{
Dictionary<string, int> bikecount {get; set;}
}
我必须将 json 反序列化为 class。
我试过了
Vehicles jsondata = JsonConvert.DesrializeObject<Vehicles>(jsonstring);
我得到的自行车和汽车词典都为空。我知道我错过了一些非常基本的东西。但无法弄清楚到底是什么。
此外,json 字符串格式无法更改。 Class 结构可以改变。
你需要这个:
public class Vehicles
{
public Dictionary<string, int> Cars { get; set; }
public Dictionary<string, int> Bikes { get; set; }
}
您没有名为 carcount
或 bikecount
的级别。相反,你马上就有了字典。
public class Vehicles
{
public Dictionary<string, int> Cars {get; set;}
public Dictionary<string, int> Bikes {get; set;}
}
请注意 属性 名称区分大小写,因此在混合大小写时要非常小心。
(按照 中描述的步骤,您可能会更轻松地完成此操作。不幸的是,这并没有考虑到字典。它至少会给你一个起点,字典应该是。)
C# 语言。控制台应用程序。
我有一个 json 文件,格式如下:
{"Cars":{"Mercedes": 1,"BMW": 3,"Toyota": 0},"Bikes":{"Kawasaki": 5,"Pulsar": 4}}
我有以下 classes:
public class Vehicles
{
public Cars cars {get; set;}
public Bikes bikes {get; set;}
}
public class Cars
{
Dictionary<string, int> carcount {get; set;}
}
public class Bikes
{
Dictionary<string, int> bikecount {get; set;}
}
我必须将 json 反序列化为 class。 我试过了
Vehicles jsondata = JsonConvert.DesrializeObject<Vehicles>(jsonstring);
我得到的自行车和汽车词典都为空。我知道我错过了一些非常基本的东西。但无法弄清楚到底是什么。
此外,json 字符串格式无法更改。 Class 结构可以改变。
你需要这个:
public class Vehicles
{
public Dictionary<string, int> Cars { get; set; }
public Dictionary<string, int> Bikes { get; set; }
}
您没有名为 carcount
或 bikecount
的级别。相反,你马上就有了字典。
public class Vehicles
{
public Dictionary<string, int> Cars {get; set;}
public Dictionary<string, int> Bikes {get; set;}
}
请注意 属性 名称区分大小写,因此在混合大小写时要非常小心。
(按照