C# で JSON をデシリアライズするにはどうすればいいですか? 質問する

C# で JSON をデシリアライズするにはどうすればいいですか? 質問する

次のコードがあります:

var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);

入力はresponsecontentJSON ですが、オブジェクトに適切に逆シリアル化されていません。適切に逆シリアル化するにはどうすればよいでしょうか?

ベストアンサー1

使用していないと思いますJson.NET(Newtonsoft.Json NuGet パッケージ)。この場合は、試してみる必要があります。

以下の機能があります:

  1. LINQ から JSON
  2. .NET オブジェクトを JSON に、またその逆に変換する JsonSerializer
  3. Json.NETはデバッグや表示用に、適切にフォーマットされインデントされたJSONをオプションで生成できます。
  4. JsonIgnoreやのような属性をJsonPropertyクラスに追加して、クラスのシリアル化方法をカスタマイズできます。
  5. JSONとXML間の変換機能
  6. 複数のプラットフォームをサポート: .NET、Silverlight、Compact Framework

見てください下記。この例では、JsonConvertクラスはオブジェクトをJSONに変換したり、JSONからオブジェクトを変換したりするために使用されます。この目的のために2つの静的メソッドがあります。SerializeObject(Object obj)そしてDeserializeObject<T>(String json):

using Newtonsoft.Json;

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };

string json = JsonConvert.SerializeObject(product);
//{
//  "Name": "Apple",
//  "Expiry": "2008-12-28T00:00:00",
//  "Price": 3.99,
//  "Sizes": [
//    "Small",
//    "Medium",
//    "Large"
//  ]
//}

Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);

おすすめ記事