メソッドを使用しているため、サーバー側は Nan 値の JSON オブジェクトを正常に生成しますserializeSpecialFloatingPointValues()
。クライアント側の Nan が原因でエラーが発生しています。jQuery のサーバー側で利用できるものと同様の Nan を処理するために、クライアント側に含めることができるオプションはありますか?
サーバ側
サーバー側 Gson が JSON オブジェクトを正常に生成
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.serializeSpecialFloatingPointValues();
Gson gson = gsonBuilder.setPrettyPrinting().create();
String jsonString = gson.toJson(Object, HashMap.class);
response.getWriter().write(jsonString);
response.getWriter().flush();
サーバーから生成された出力
{
"name": "ABC",
"data1": 511,
"data2": NaN
}
クライアント側
$.ajax({
url: "AbcServlet",
data: {
input: abc,
},
dataType: "json",
type: "GET",
async: false,
success: function (parsed_json) {
evaluate(parsed_json);
},
error: function (request, status, error) {
alert("Error " + error);
}
});
注: JSON 応答出力の Nan が数値に置き換えられた場合、クライアント側は完全に機能します。
私の質問は、com.google.gson.Gsonに Nan を処理または生成するオプションがある場合、クライアント側でもそれを処理するオプションが必要です。