将 JSON 反序列化为 c# 字典 // 结构问题

Deserialize JSON to c# dictionary // Problem with structure

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

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

我正在使用以下 class 反序列化定义:

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 class。尝试将 Root 更新为如下所示:

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

此外,您的 Room class 有一个 username 属性 不在您的示例 JSON 中,并且缺少 roomName 属性 来自你的例子。