Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GSON错误:depthLimit_Android_Gson - Fatal编程技术网

Android GSON错误:depthLimit

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序列化一些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对象深度限制的方法。有什么想法吗

我的代码如下所示:

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;中告诉您的。)是的,就是这样。但我当时不相信你!现在我自己发现了。谢谢你的帮助。