当我使用serializeSpecialFloatingPointValues()
方法时,服务器端成功地为 Nan 值生成 JSON 对象。由于客户端的 Nan,我收到错误消息。是否有一个选项可以包含在客户端来处理 Nan,类似于 jQuery 中服务器端可用的选项?
服务器端
服务端 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 的选项,那么客户端也必须有一些选项来处理它。