我是靠谱客的博主 跳跃大船,最近开发中收集的这篇文章主要介绍gson反序列化int变成double,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原始对象

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部