我有以下代码:
var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);
输入在responsecontent
是 JSON,但未正确反序列化为对象。我应该如何正确地反序列化它?
我假设你没有使用Json.NET(Newtonsoft.Json NuGet 包)。如果是这种情况,那么你应该尝试一下。
它具有以下特点:
- LINQ 到 JSON
- JsonSerializer 用于快速将 .NET 对象转换为 JSON 并再次转换回来
- Json.NET 可以选择生成格式良好、缩进的 JSON 以进行调试或显示
- 属性如
JsonIgnore
and JsonProperty
可以添加到类中以自定义类的序列化方式
- 能够将 JSON 与 XML 相互转换
- 支持多种平台:.NET、Silverlight 和 Compact Framework
看着那(这example以下。在这个例子中,JsonConvert类用于将对象与 JSON 相互转换。为此,它有两个静态方法。他们是SerializeObject(Object obj) and 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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)