试图查看地图的内容

时间:2015-09-20 22:12:04

标签: java spring spring-mvc dictionary

您好我正在尝试使用以下代码查看地图内容:

@RequestMapping(value = "/demos", method = RequestMethod.GET,headers="Accept=application/json")
    public @ResponseBody String getPartnerIdClusters(Model model) {
            Map<Integer, List<Cluster>> partnerIdClusterMap = partnerService.getPartnerIdClusterMap(true, true);

            return "partnerIdClusterMap: " + partnerIdClusterMap;
    }

在浏览器中给了我以下输出:

partnerIdClusterMap: {2=nl.irp.globetrotting.model.Cluster@7499394a}

之后我尝试了这段代码:

    String line = "test: /n";
    for (Object entry : partnerIdClusterMap.values().toArray()) {
             line += entry;
             line += "/n";
    }
    return "partnerIdClusterMap " + line;

但这不起作用,因为它给了我以下输出:

partnerIdClusterMap test: /nnl.irp.globetrotting.model.Cluster@63769066/n

我已经知道它是Cluster,ID为3.以下是它的截图: 链接:http://i.imgur.com/pKLu6gf.png

以下是getPartnerIdClusterMap()方法的外观(如果您想知道):

@Override
    public Map<Integer, List<Cluster>> getPartnerIdClusterMap(boolean minorOnly, boolean foreignCountriesOnly) {
        BooleanBuilder predicate = new BooleanBuilder();
        if (minorOnly) {
            predicate.and(qCluster.type.eq(ClusterType.MINOR));
        }
        if (foreignCountriesOnly) {
            predicate.and(qPartner.country.code2.ne("nl"));
        }

        return from(qCluster)
                .innerJoin(qCluster.partner, qPartner)
                .where(predicate)
                .where(qPartner.country.code2.ne("nl"))
                .map(qPartner.id, GroupBy.list(qCluster));

    }

这是我很乐意知道的:

所以我很乐意看到Cluster包含该行的所有值。

2 个答案:

答案 0 :(得分:1)

Spring MVC应该能够在消息转换器的帮助下将地图转换为JSON。使用Spring Boot,只需返回地图就可以了 - 我会自动配置 MappingJackson2HttpMessageConverter 。我记得,在使用Spring Boot之前,我只需要配置 ObjectMapper ,然后返回地图就可以了。总而言之,我认为

  1. 使用Spring Boot,返回地图应该可以。
  2. 如果不使用Spring Boot,可能需要配置 ObjectMapper (也可能还有 MappingJackson2HttpMessageConverter )。
  3. 如果返回的地图包含 ObjectMapper 默认无法转换的内容,则可能需要您提供一些转换自定义。关于 Jackson(现在称为fastxml)ObjectMapper 的帮助材料将有更多细节。

答案 1 :(得分:0)

partnerIdClusterMap: {2=nl.irp.globetrotting.model.Cluster@7499394a}

基本上您正在打印指定的值。在这种情况下,您将打印整数,然后打印使用“集群对象”填充的列表对象。 考虑在weblogic中迭代partnerIdClusterMap并使用它提供的方法提取值,或者覆盖对象的toString方法以获得包含详细信息的完整行。