springMVC 使用注解@ResponseBody 不能返回JSON数据

控制器中代码

@RequestMapping(value = "/listArea",method = RequestMethod.GET)
    @ResponseBody
    private Map<String,Object> listArea(){
        Map<String,Object> modelMap = new HashMap<>();

        List<Area> list = areaService.getAreaList();
        modelMap.put("rows", list);
        modelMap.put("total", list.size());
        return modelMap;
    }

xml中的使用了这个
<mvc:annotation-driven/>

pom.xml引入下列依赖

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.8</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>

访问接口时报错

WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class java.util.HashMap]
DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 500 INTERNAL_SERVER_ERROR
阅读 1.5k
评论 2019-07-03 提问
    5 个回答
    白异
    • 1
    • 新人请关照

    1,返回值类型写错了,因为@responsebody返回的数据是JSON格式,但是JSON格式类型是String,所以你的返回值应该是String而不是Map
    2,还有方法修饰词应改为public而不是private

    评论 赞赏 2019-07-03
      评论 赞赏 2019-07-17
        Swpg
        • 11

        你的Area实现序列化接口了吗

        评论 赞赏 2019-09-06
          • 增加依赖
           <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
             <version>2.9.5</version>
          </dependency>
          <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-annotations</artifactId>
             <version>2.9.2</version>
          </dependency>
          • 配置spring.xml
          <mvc:annotation-driven >
              <mvc:message-converters>
                  <bean class="org.springframework.http.converter.StringHttpMessageConverter"></bean>
                  <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
              </mvc:message-converters>
          </mvc:annotation-driven>
          评论 赞赏 2019-09-07
            晨曦啊
            • 0
            • 新人请关照

            <dependency>

            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>

            </dependency>
            这个依赖引入一下 试试看

            该答案已被忽略,原因:不符合答题规范 - 内容不是答案,可用评论、投票替代

            评论 赞赏 2019-09-06
              撰写回答

              登录后参与交流、获取后续更新提醒