1

私は非常に単純な POCO クラスを持っています:

    [JsonArray]
    public class WebGame
    {    
        public  int Key { get; set; }

        public string Name { get; set; }

        public string Description { get; set; }
    }

それにjson文字列を逆シリアル化しようとしています:

  string json = @"[{'Key':'1','Name':'WebGame','Description':'bla-bla-bla'}]";
  var myDeserializedObjList = (List<WebGame>)(JsonConvert.DeserializeObject(json, typeof(List<WebGame>)));      
  var game = myDeserializedObjList[0];

例外があります:

現在の JSON オブジェクト (例: {"name":"value"}) を型 'WebGame' に逆シリアル化できません。型が正しく逆シリアル化するには JSON 配列 (例: [1,2,3]) が必要なためです。このエラーを修正するには、JSON を JSON 配列 ([1,2,3] など) に変更するか、逆シリアル化された型を通常の .NET 型 (整数のようなプリミティブ型ではなく、コレクション型ではない) に変更します。 JSON オブジェクトから逆シリアル化できる配列またはリスト)。JsonObjectAttribute を型に追加して、強制的に JSON オブジェクトから逆シリアル化することもできます。

ここで何が問題なのですか?

4

1 に答える 1

1

[JsonArray] 属性を削除すると、正常に機能します

于 2013-11-04T09:56:51.117 に答える