C#JSON解析

我在修改一些JSON数据时遇到问题:

{ "title": "LED SIDE DIRECTION INDICATOR 9-33V CATEGORY 6, 19cm CABLE CHROME BASE LED AUTO LAMPS", "user_price": { "inc_tax_value": 34.067, "ex_tax_value": 30.97, "base_inc_tax": 34.067, "base_ex_tax": 30.97, "currency_code": "", "price_rule": "35" }, "local_quantity": 0, "global_quantity": 0, "url": "http://ishop2.cooldrive.com.au/products/3102CM", "all_warehouse_quantity": 0, "description1": "LED SIDE DIRECTION INDICATOR", "description2": "9-33V CATEGORY 6, 19cm CABLE", "description3": "CHROME BASE LED AUTO LAMPS", "price_per": 1, "default_pack_quantity": 1, "code": "3102CM" } 

我尝试了很多例子但是我无法从这个产品信息示例中获得任何数据。 这是我想要使用的:

 string testJson = new HttpHelper().POST("http://ishop2.cooldrive.com.au/api/product", "code=3102CM"); System.Windows.Forms.Clipboard.SetText(testJson); MyJsonClass tester = new System.Web.Script.Serialization.JavaScriptSerializer() .Deserialize(@testJson); 

文本返回如上,但testJson始终为null …

 private class MyJsonClass { public IList<IDictionary> data { get; set; } } 

这适用于你的json

 var dict = new JavaScriptSerializer().Deserialize>(testJson); Console.WriteLine(dict["url"]); var price = (Dictionary)dict["user_price"]; Console.WriteLine(price["inc_tax_value"]); 

如果json对象的字段始终相同,那么您可以使用强类型类而不是字典。 json序列化程序将正确序列化到以下类:

 private class MyJsonClass { public string title { get; set; } public UserPrice user_price { get; set; } public int local_quantity { get; set; } ... } private class UserPrice { public decimal inc_tax_value { get; set; } public decimal ex_tax_value { get; set; } ... }