C# 使用变量键反序列化JSON

C# 使用变量键反序列化JSON,c#,json,deserialization,C#,Json,Deserialization,具有此json格式数据: { "43296001103418946331805279000": { "city": "43296001", "district": "43296001-1034189463", "floor": "5", "price": "279000", "rooms": "3", "size": "80" }, "432960018694019521321777312000"

具有此json格式数据:

{
    "43296001103418946331805279000": {
      "city": "43296001",
      "district": "43296001-1034189463",
      "floor": "5",
      "price": "279000",
      "rooms": "3",
      "size": "80"
    },
      "432960018694019521321777312000": {
      "city": "43296001",
      "district": "43296001-86940195213",
      "floor": "7",
      "price": "312000",
      "rooms": "2",
      "size": "77"
    }
}
我有这门课:

public class Flat
{
  public string city{ get; set; }
  public string district{ get; set; }
  public string floor{ get; set; }
  public string price{ get; set; }
  public string rooms{ get; set; }
  public string size{ get; set; }
}

但是,如果键是变量id,我如何反序列化该对象呢?

在这种情况下,您将有:

public class JsonData
{
    public List<Dictionary<string, Flat>> Data { get; set; }
}
公共类JsonData
{
公共列表数据{get;set;}
}
然后通过以下操作反序列化:

JsonData data = JsonConvert.DeserializeObject<JsonData>(json);
jsondatadata=JsonConvert.DeserializeObject(json);

我认为您需要这样使用:

var out = JsonConvert.DeserializeObject<Dictionary<string, ISBN>>(json);        
var isbn_out = out.Values.First();

看看这个。

反序列化到字典。在这种情况下,
Dictionary
 isbn_out.Flat.city;