记录一个奇怪的问题

 代码如下:

 IdentityHashMap<String,String> maps = new IdentityHashMap<>();
        maps.put(new StringBuilder("张三").toString(),"123");
        maps.put(new StringBuilder("李四").toString(),"1235");
        maps.put(new StringBuilder("王五").toString(),"123434");
        maps.put(new StringBuilder("赵柳").toString(),"胜多负少会计法");
        maps.put(new StringBuilder("张三").toString(),"232342353");
        return maps;

 我想通过不去重复的map,将同样key,不同value的map集合返回给前端,但是在返回的途中出现了问题,当我使用浏览器直接访问网址时,返回的是我想要的集合,但是通过potMan和实际页面调用时,返回的值确实进过去重后的map。

Service截图:从下面的截图中可以看到,maps中已经存储进入了五个不同的键值(请忽略StringBuilder,经过测试,new String,String.toString返回值都和上面描述的情况一致)

Controller: 依旧有五个值

下面会放出postMan和页面直接调用的情况。 

              postMan:这个张三的值会变动,可能是123,也可能是232342353

网页截图:

以上就是问题原因及现象。

--------------------------          2018年9月12日 更新        -------------------------

确认应该是json会自带去重效果,即一串json中不会拥有重复的key。

解决方式:将返回值用数组的形式,或者将key值修改为不重复。

猜你喜欢

转载自blog.csdn.net/queryById/article/details/82557306