概述
原始对象
User{class java.lang.Integer:age=10
class java.lang.Double:weight=120.5
class java.lang.Long:height=180
class java.math.BigDecimal:money=999}
Gson序列化成json
{"age":10,"weight":120.5,"height":180,"money":999}
Gson反序列化放进Map(异常)
{money=999.0, weight=120.5, age=10.0, height=180.0}
使用jackson解决
{age=10, weight=120.5, height=180, money=999}
代码
public class JacksonTest {
public static void main(String[] args) throws JsonProcessingException {
User user = new User();
user.setAge(10);
user.setWeight(120.5);
user.setHeight(180L);
user.setMoney(new BigDecimal("999"));
System.out.println("原始对象:" + user);
System.out.println();
String numberJson = new Gson().toJson(user);
System.out.println("Gson序列化成json:" + numberJson);
System.out.println();
Map map = new HashMap<>();
Map newMap = new Gson().fromJson(numberJson, map.getClass());
System.out.println("反序列化放进Map:" + newMap);
System.out.println();
ObjectMapper OBJECT_MAPPER = new ObjectMapper();
Map<String, Object> newMap2 = OBJECT_MAPPER.readValue(numberJson, new TypeReference<Map<String, Object>>() {});
System.out.println("解决:" + newMap2);
System.out.println();
}
}
@Data
public class User implements Serializable {
/**
* 年龄
*/
private Integer age;
/**
* 体重
*/
private Double weight;
/**
* height
*/
private Long height;
/**
* money
*/
private BigDecimal money;
@Override
public String toString() {
return "User{" + age.getClass() + ":age=" + age + "n" + weight.getClass() + ":weight=" + weight + "n"
+ height.getClass() + ":height=" + height + "n" + money.getClass() + ":money=" + money + '}';
}
}
最后
以上就是跳跃大船为你收集整理的gson反序列化int变成double的全部内容,希望文章能够帮你解决gson反序列化int变成double所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复