Android GSON错误:depthLimit
我尝试使用Gson序列化一些webservice参数,但遇到了一个奇怪的错误: 11-03 00:56:43.088:*.helpers.JsonServer(620):结果数据: {“Message”:“使用 JSON JavaScriptSerializer。字符串的长度超过该值 在maxJsonLength属性上设置。\r\n参数名称: 输入,“StackTrace”:“在 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer 序列化程序,字符串输入,类型,Int32 depthLimit)\r\n位于 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](字符串 输入)\r\n位于 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext 上下文,WebServiceMethodData methodData)”,“ExceptionType”:“System.ArgumentException”} 我尝试序列化的参数是一些字符串和数字,但问题是当我有一个大字符串(base64映像)作为参数时 我没有找到增加Gson对象深度限制的方法。有什么想法吗 我的代码如下所示:Android GSON错误:depthLimit,android,gson,Android,Gson,我尝试使用Gson序列化一些webservice参数,但遇到了一个奇怪的错误: 11-03 00:56:43.088:*.helpers.JsonServer(620):结果数据: {“Message”:“使用 JSON JavaScriptSerializer。字符串的长度超过该值 在maxJsonLength属性上设置。\r\n参数名称: 输入,“StackTrace”:“在 System.Web.Script.Serialization.JavaScriptSerializer.Deser
Gson gson = new Gson();
httpPost.setEntity(new StringEntity(gson.toJson(parameters), "utf-8")); //here I get the error
httpPost.setHeader("Content-Type", "application/json; charset=utf-8");
参数是一个哈希表。此散列中的一项是一个大字符串(超过600k个字符),即base64映像。这个图像有时可能会更大,超过1米
问题:
如何提高这个限制我刚刚发现错误不是来自Android,而是来自web服务。Web服务.Net有一些限制 如果有人对如何修复此问题感兴趣,请在web.config文件中设置:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="999999999"/>
</webServices>
</scripting>
</system.web.extensions>
Gson工作完美 您的异常是否在客户端?我的意思是,似乎您的ASP服务器无法反序列化JSON是由于限制,而不是Gson有限制。看看这个例子:我的问题是,现在,在Android方面。对不起,我仍然不明白,当你执行System.out.println(gson.toJson(parameters))时,你的Java错误/异常是什么,这样你就排除了post部分,我就可以检查gson问题了?我得到的错误是因为参数的大小。我有一个非常大的字符串作为参数(600k字符字符串)。这是我在注释#3;中告诉您的。)是的,就是这样。但我当时不相信你!现在我自己发现了。谢谢你的帮助。