Gson を使用していくつかの Web サービス パラメーターをシリアル化しようとすると、奇妙なエラーが発生します。
11-03 00:56:43.088: * *.helpers.JsonServer(620): 結果データ: {"メッセージ":"JSON JavaScriptSerializer を使用したシリアル化または逆シリアル化中にエラーが発生しました。文字列の長さが maxJsonLength に設定された値を超えていますプロパティ。 Script.Serialization.JavaScriptSerializer.Deserialize[T](文字列入力)\r\n System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","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");
パラメータはハッシュテーブルです。このハッシュの項目の 1 つは、大きな (600k 文字を超える) 文字列 - base64 イメージです。この画像は、1M 以上になることがあります。
質問: その制限を増やす方法