次のコードがあります:
var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);
入力はresponsecontent
JSON ですが、オブジェクトに適切に逆シリアル化されていません。適切に逆シリアル化するにはどうすればよいでしょうか?
ベストアンサー1
使用していないと思いますJson.NET(Newtonsoft.Json NuGet パッケージ)。この場合は、試してみる必要があります。
以下の機能があります:
- LINQ から JSON
- .NET オブジェクトを JSON に、またその逆に変換する JsonSerializer
- Json.NETはデバッグや表示用に、適切にフォーマットされインデントされたJSONをオプションで生成できます。
JsonIgnore
やのような属性をJsonProperty
クラスに追加して、クラスのシリアル化方法をカスタマイズできます。- JSONとXML間の変換機能
- 複数のプラットフォームをサポート: .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);