c# - 将 Json 文档反序列化为 C# 对象

标签 c# json json.net c#-5.0 c#-6.0

C# 语言。控制台应用程序。

我有一个以下格式的 json 文档:

{"Cars":{"Mercedes": 1,"BMW": 3,"Toyota": 0},"Bikes":{"Kawasaki": 5,"Pulsar": 4}}

我有以下类(class):

    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 反序列化到类中。 我试过这个

Vehicles jsondata = JsonConvert.DesrializeObject<Vehicles>(jsonstring);

我将自行车和汽车中的字典设置为空。我知道我错过了一些非常基本的东西。但无法弄清楚到底是什么。
另外,json 字符串格式不能更改。不过,类结构可以改变。

最佳答案

您没有名为 carcountbikecount 的级别。相反,您可以立即获得词典。

public class Vehicles  
{
    public Dictionary<string, int> Cars {get; set;}
    public Dictionary<string, int> Bikes {get; set;}
}

请注意,属性名称区分大小写,因此在混合大小写时要非常小心。

(您可能可以按照描述的步骤 in this answer 来更容易地完成此操作。不幸的是,这没有考虑字典。它至少会给您一个字典应该在的起点。)

关于c# - 将 Json 文档反序列化为 C# 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43612686/

相关文章:

c# - Windows 10 UWP 中的扩展启动画面?

如果属性与列表匹配,Javascript 如何在 json 数组上使用 array.filter 返回整个数组

java - 如何使用 json-schema-validator 根据超模式验证 JSON

c# - Json.NET 中每个树节点序列化前后的自定义代码

c# - NewtonSoft Json 使用括号方法检索数据

c# - 执行性能日志记录的好方法 (C#)

c# - C# 中的 MYSQL Entity Framework 连接器

Visual Studio Enterprise 2015 中的 C# 7.0

javascript - 如何将 JSON 的特定部分转换为字符串?

c# - 使用 json.net 检测带有 json 对象的 token