0

我有一个关于如何反序列化具有未固定名称的 json 数组的问题,例如我有一个如下所示的 json 字符串。

[
  {
    "37414": "MP",
    "weight": 1000
  },
  {
    "21253": "Develper",
    "weight": 424
  },
  {
    "66344": "APP",
    "weight": 1158
  },
  {
    "1622": "API",
    "weight": 164
  }
]

我还定义了一个类,如下所示,并希望使用 JSON.NET 将 json 字符串反序列化为UserTag对象。或者我应该更改类定义。

public class UserTag
{
    // "37414"
    public long Id { get; set; }

    // MP
    public string Name { get; set; }

    // 424
    public long Weight { get; set; }
}

提前致谢!

4

2 回答 2

1

您是否使用正确的 json 格式?

我认为你应该使用:

[
  {
    "Id" :37414,
    "Name" : "MP",
    "Weight": 1000
  },
  {
    "Id" :21253,
    "Name" : "Develper",
    "Weight": 424
  },
  {
    "Id": 66344,
    "Name" : "APP",
    "Weight": 1158
  }
]

它将反序列化为:

public class UserTag
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Weight { get; set; }
}
于 2012-10-03T13:27:51.517 回答
0
var result = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(json);

foreach (var item in result)
{
    foreach (var kv in item)
    {
        Console.WriteLine(kv.Key + ": " + kv.Value);
    }
}
于 2012-10-03T13:54:59.683 回答