如何在c#中反序列化这个JSON?

时间:2016-10-21 20:02:39

标签: java c# json

{
  "1": {
    "id": 1,
    "name": "Name(1)",
    "var": 24,
    "type": "TEST"
  },
  "2": {
    "id": 2,
    "name": "Name(2)",
    "var": 24,
    "type": "TEST"
  },
...

在java中使用TIntObjectMap并像这样加载它们可以正常工作。 找不到在c#中执行此操作的方法。

GSON.fromJson(FileUtils.readFileToString(new File("file.json")),new TypeToken<Map<Integer, Definition>>() { }.getType()));

1 个答案:

答案 0 :(得分:1)

使用Json.Net

var myobjs = JsonConvert.DeserializeObject<Dictionary<string, MyObject>>(json);

public class MyObject
{
    public int id { get; set; }
    public string name { get; set; }
    public int var { get; set; }
    public string type { get; set; }
}

您甚至可以在不使用dynamic

等类的情况下使用MyObject
 dynamic dynObj = JsonConvert.DeserializeObject(json);
 Console.WriteLine(dynObj["1"].name);

这是我使用过的json(正如你发布的那样)

{
  "1": {
    "id": 1,
    "name": "Name(1)",
    "var": 24,
    "type": "TEST"
  },
  "2": {
    "id": 2,
    "name": "Name(2)",
    "var": 24,
    "type": "TEST"
  }
}