Controller 返回Map疑惑

2,448 阅读1分钟

在别人的controller里面,看到了返回值类型是map 接口调用返回结果是:

{
   "key1":"value1",
   "key2":"value2"

}

这种格式的;

印象中 正常的map格式应该是

{
    key1=value1,
    key2=value2
}

后来尝试了下写个接口测试一下 ,返回的确实是key:value 的格式;

后来了解到应该是@ResopnseBody 这个注解 去解决返回值的格式;

控制层的方法 是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。

如果是bean对象,会调用对象的getXXX()方法获取属性值并且以键值对的形式进行封装,转化为json串。

如果是map集合,采用get(key)方式获取value值,然后进行封装。

我又写个返回String类型的map;

返回map.toString();

对应的返回值就是map的原有格式

{
    key1=value1,
    key2=value2
}