Gson-特殊的Double和Float字段的处理-serializeSpecialFloatingPointValues

本文介绍了在使用Gson时,如何处理Java中Float和Double类的特殊类型。默认情况下,非标准JSON规范的浮点数字段在序列化时会报错。通过设置serializeSpecialFloatingPointValues属性,可以允许序列化这些非规范字段,但不影响反序列化过程。建议避免在代码中使用这些特殊字段。
摘要由CSDN通过智能技术生成

serializeSpecialFloatingPointValues
Java语言中Float Double类中有一些自定义的类型例如

public static final double NaN = 0.0d / 0.0;
public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308

这些并不是规范的JSON里的,正常情况下会报异常:

Exception in thread "main" java.lang.IllegalArgumentException: NaN is not a valid double value as per JSON specification. To override this behavior, use GsonBuilder.serializeSpecialFloatingPointValues() method.
	at com.google.gson.Gson.checkValidFloatingPoint(Gson.java:359)
	at com.google.gson.Gson$2.write(Gson.java:351)
	at com.google.gson.Gson$2.write(Gson.java:337)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:127)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(Refle
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值