【问题标题】:Deserialize JSON to c# dictionary // Problem with structure将 JSON 反序列化为 c# 字典 // 结构有问题
【发布时间】:2020-09-30 13:33:38
【问题描述】:

我想反序列化如下所示的 JSON:

{
    "rooms":{
        "room1":{
            "id":"bPhJoQTTE",
            "roomName":"room1"
        },
         "room2":{
            "id":"bPh1oqLTE",
            "roomName":"room2"
        }
    }
}

我使用以下类定义进行反序列化:

public class Room
{
    public string id;
    public string roomName;
}

public class Rooms
{
    public Dictionary<string, Room> room;
}

public class Root
{
    public Rooms rooms;
}

这是我用来执行反序列化的代码:

Root deserializationObj = JsonConvert.DeserializeObject<Root>(json);

它不起作用 - 我做错了什么?

【问题讨论】:

  • rooms 已经代表Dictionary&lt;string, Room&gt; 结构
  • 您可以使用json2csharp.com 来生成有效 json 所需的数据结构

标签: c# json json-deserialization


【解决方案1】:

您根本不需要 Rooms 类。尝试将Root 更新为如下所示:

public class Root
{
    public Dictionary<string, Room> rooms;
}

此外,您的 Room 类有一个不在您的示例 JSON 中的 username 属性,并且它缺少您示例中的 roomName 属性。

【讨论】:

    猜你喜欢
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    相关资源
    最近更新 更多