是否可以使用GSON将Double NaN序列化为null?
我目前遇到的问题是,当我发布Double NaN时,JavaScript订阅者无法反序列化json消息。
class Value {
Double value;
}
@Test
public void name() {
Value newValue = new Value();
newValue.value = Double.NaN;
Gson gson = new GsonBuilder().serializeSpecialFloatingPointValues().create();
String string = gson.toJson(newValue);
System.out.println(string);
}
以上代码打印:
{"value":NaN}
我想:
{"value":null}
1条答案
按热度按时间neekobn81#
只需创建专用的类型适配器工厂,该工厂重写
Float
和Double
类型适配器,并检查可序列化值是否为NaN或无穷大。下面是一个测试(基元数组用于测试基元浮点数和双精度数,而原始值分别被装箱为
Float
和Double
):