fastjson v1.2.31 序列化Map< Long,Long> 不是想要的结果,有Feature可以设置吗

wr98u20j  于 2021-11-27  发布在  Java
关注(0)|答案(1)|浏览(335)
Map<Long,Long> map = new HashMap<>();

        map.put(11L,22L);
        map.put(12L,22L);
        map.put(14L,22L);

        String fastJsonConvertData = JSON.toJSONString(map);
        // 结果是 {11:22,12:22,14:22}
        System.out.println(fastJsonConvertData);

        ObjectMapper objectMapper = new ObjectMapper();
        String jacksonConvertData = objectMapper.writeValueAsString(map);
        // 结果是 {"11":22,"12":22,"14":22}
        System.out.println(jacksonConvertData);

        // 测试fastjson自己转自己的
        Map<Long,Long> newMapFastJson = JSON.parseObject(fastJsonConvertData, new com.alibaba.fastjson.TypeReference<Map<Long,Long>>(){});

        try {
            // 测试jackson 转fastjson的  ,抛出异常
            Map<Long,Long> newMapJackSon = objectMapper.readValue(fastJsonConvertData, new TypeReference<Map<Long,Long>>(){});
        }catch (Exception e){
            e.printStackTrace();
        }

由于是客户端 这边是 fastjson的,服务端不是,fastjson构造的数据无法被服务端解析,
目前在 SerializerFeature 这个类里面没有找到相关的配置,请问在客户端有何解决方法。

h43kikqp

h43kikqp1#

JSON.toJSONString(obj, SerializerFeature.WriteNonStringKeyAsString);

相关问题