当我使用serializeSpecialFloatingPointValues()
方法时,服务器端成功为Nan值生成JSON对象。由于客户端的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,那么在客户端也必须有一些选项来处理它。