我的代码就像这样
using System;
using System.IO;
using System.Web;
using System.Web.Script.Serialization;
public class SaveData : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
string jsonString = String.Empty;
context.Request.InputStream.Position = 0;
using (var inputStream = new StreamReader(context.Request.InputStream))
{
jsonString = inputStream.ReadToEnd();
}
var javaScriptSerializer = new JavaScriptSerializer();
object serJsonDetails = javaScriptSerializer.Deserialize(jsonString, typeof (object));
// You can now add logic to work with serJsonDetails object
}
}
一切看起来都没问题,我不知道为什么会抛出这个错误
Error: method deserialize has 1 parameter but invoked with 2 arguments
答案 0 :(得分:1)
消息非常清楚:Deserialize方法只有一个参数(http://msdn.microsoft.com/fr-fr/library/bb355316(v=vs.110).aspx)。但是,您使用两个参数调用该方法。
如果要解决此错误,请更改:
object serJsonDetails = javaScriptSerializer.Deserialize(jsonString, typeof (object));
到:
object serJsonDetails = javaScriptSerializer.Deserialize(jsonString);
编辑:您使用的是哪个版本的.NET Framework? (带有2个参数的方法出现在.NET Framework 4 http://msdn.microsoft.com/fr-fr/library/ee191864(v=vs.110).aspx)中。
答案 1 :(得分:0)
尝试:
object serJsonDetails = javaScriptSerializer.Deserialize(jsonString);