我正在尝试使用返回json的GET方法调用web api。我的代码工作正常,并返回给我json数据。但我在反序列化数据时面临的挑战。我的代码是:(。Net framework 3.5)
WebRequest req = WebRequest.Create("url");
req.Method = "GET";
req.ContentType = "application/json; charset=utf-8";
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
StreamReader re = new StreamReader(stream);
String json = re.ReadToEnd();
上面的代码工作正常并返回数据。问题出在下面一行:
wrapper w = (wrapper)new JavaScriptSerializer().Deserialize(json, typeof(wrapper));
显示错误:
方法没有重载'反序列化'需要2个参数。
我该怎么办?提前谢谢。
答案 0 :(得分:0)
JavaScriptSearializer
在.Net Framework中可用,但在版本3.5中,没有Deserialize
方法的重载,它带有2个参数。从版本4.0开始,可以使用2个参数进行重载。 3.5只有一个Deserialize
方法,您需要通过传递泛型类型而不是第二个参数来使用。
wrapper w = (wrapper)new JavaScriptSerializer().Deserialize<wrapper>(json);
Here是有关您要使用的方法的文档。如果您滚动到页面底部,则会显示版本信息部分,您可以在其中找到此方法自版本4.0起可用
答案 1 :(得分:0)
你试过Newtonsoft.Json lib吗?
using Newtonsoft.Json;
你可以这样做
wrapper w = JsonConvert.DeserializeObject<wrapper>(json);