c# - 如何用C#解析JSON?

我有以下代码:

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

responsecontent中的输入是json,但没有正确地解析为对象。我应该如何正确地反序列化它?


最佳答案:

我假设您没有使用Json.NET(newtonsoft.json nuget package)。如果是这种情况,那么你应该试试。
它具有以下特点:
LINQ到JSON
用于快速将.NET对象转换为JSON并再次返回的JSONserializer
json.net可以选择生成格式良好、缩进的json以进行调试或显示。
可以将jsonignore和jsonproperty等属性添加到类中,以自定义类的序列化方式。
能够将JSON转换为XML和从XML转换为JSON
支持多个平台:.NET、Silverlight和Compact框架
查看下面的example。在本例中,JsonConvert类用于将对象转换为JSON和JSON之间的对象。为此,它有两种静态方法。它们分别是SerializeObject(Object obj)DeserializeObject<T>(String 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);

评论