利⽤fastJson转化后出现类型异常的问题(关于BigDecimal字
段属性)
问题描述: 实体属性是 BigDecimal ,利⽤fastJson转化成map后发现整数的变为了Integer ,⼩数还是BigDecimal,double与 float的⼩数 也变为了 BigDecimal;
fastjson忽略属性原因: fastjson缺省反序列化带⼩数点的数值类型为BigDecimal; 整数,默认为Integer
1.临时解决⽅案:
(1)对于BigDecimal字段的属性 aa,转map后,获取的该属性时,做⼀个转换
注意判空: ("key") == null ? null : new string());
其他的类型也是先转为字符串,然后再转化成对应的类型
2.全局来改
JSON.DEFAULT_PARSER_FEATURE &= ~Mask();
3.局部改
int disableDecimalFeature = JSON.DEFAULT_PARSER_FEATURE & ~Mask();
String json = "....";
Class type = JSONObject.class;
JSON.parseObject(json, type, disableDecimalFeature);