Fasterxml杰克逊映射 - 数据没有正确绑定

问题描述:

我想在浏览器中显示我的JSON,我在JSON中获取数据,但只获取我的表的最后一条记录。继罐存在于我的构建路径,Fasterxml杰克逊映射 - 数据没有正确绑定

  • 杰克逊,数据绑定
  • 杰克逊核心
  • 杰克逊的注解

这里是我的控制器方法

@RequestMapping("/viewDashboard") 
    @ResponseBody 
    public ModelMap test(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, @RequestParam String name) { 

     ModelMap modelMap = new ModelMap(); 
     List<Instances> instances = viewDashboardServiceImpl.viewDashboard(); 
     log.info(instances.size()); 
     return modelMap.addAllAttributes(instances); 

    } 
} 

其实在数据库表我是五条记录,但在json中,我只获取一条记录数据。

在将实例列表添加到modelMap对象之前的上述方法中,我正在检查列表的大小,它给出了五个,但在我的JSON中它只显示一个记录的数据。

这是我的控制台输出

17:08:08638 INFO [com.mac.controller.DashboardController](HTTP - 127.0.0.1-808 0-1)的实例列表大小:5

这里是我的JSON提前

{"instances":{"id":5,"instanceName":".net","applications":{"id":3,"name":">net","ownerName":"Mou","version":"3kmnc"},"environments":{"id":2,"name":"IST","ownerName":"Mou","version":"1.23.asd"},"version":"2.3as"}} 

感谢。

看起来真正的问题是modelMap.addAllAttributes(instances)调用。 弹簧将根据每个元素的类名生成列表元素的键。

例如:

List<String> list = Arrays.asList("x", "y", "z"); 

ModelMap m = new ModelMap(); 
m.addAllAttributes(list); 

这里ModelMap将包含与属性名称"string"和值"z"一个条目。 "x""y"将不在地图中,因为每个生成的属性名称将为"string",最后一个将获胜。

为了解决这个问题,简单地将它们添加到modelMap当指定属性名称到您的收藏instances

modelMap.addAttribute("myInstances", instances);