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 に答える