我尝试使用 Gson 序列化一些 Web 服务参数,但出现一个奇怪的错误:
11-03 00:56:43.088: * *.helpers.JsonServer(620): 结果数据: {"Message":"使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过 maxJsonLength 上设置的值属性。\r\n参数名称:System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer 序列化程序,字符串输入,类型类型,Int32 depthLimit) 处的输入","StackTrace":"\r\n System.Web。 Script.Serialization.JavaScriptSerializer.Deserialize[T](字符串输入)\r\n 在 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext 上下文,WebServiceMethodData 方法数据)","ExceptionType":"System.ArgumentException"}
我尝试序列化的参数是一些字符串和数字,但问题是当我有一个大字符串(base64 图像)作为参数时。
我没有找到增加 Gson 对象中 depthLimit 的方法。任何想法?
我的代码如下所示:
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");
参数是一个哈希表。此哈希中的一项是一个大(超过 60 万个字符)字符串 - base64 图像。这个图像可能会更大一些 - 超过 1M。
问题:如何增加该限制