找不到类型为:class org.json.JSONArray的返回值的转换器

时间:2017-05-15 16:48:25

标签: java angularjs spring spring-restcontroller

我想从spring控制器方法返回一个JSONArray(org.json.jar)对象,这是我的java spring控制器:

import org.json.JSONArray;
import org.json.JSONException;

@RestController
public class BICOntroller{

@RequestMapping(value="/getStatus", method = RequestMethod.GET)
    public ResponseEntity<JSONArray> getStatus() throws JSONException{
      ResponseEntity<JSONArray> response = null;
      JSONArray arr = new JSONArray();

      JSONObject obj = new JSONObject();
      //process data
      arr.put(obj);

      response = new ResponseEntity<JSONArray>(arr, HttpStatus.OK);
      return response;
  }

}

Angular js致电:

            $http({
                url: 'getStatus',
                method: 'GET',
                responseType: 'json'
            }).then(function(response){
                console.log(response);
                return response;
            }, function(error){
                console.log(error);
                return error;
            });

这给出了500错误:

java.lang.IllegalArgumentException: No converter found for return value of type: class org.json.JSONArray

我在课程路径中添加了jackson-core-2.7.5.jarjackson-databind-2.7.5.jar

谢谢!

2 个答案:

答案 0 :(得分:3)

添加依赖项对我不起作用。什么工作将JSONArray转换为String 。 仅供参考我正在使用Spring Boot Application并且正在尝试返回JSONArray。

答案 1 :(得分:2)

分开以添加依赖项,您可能需要这样做。

如果您使用春季启动,请使用消息转换器为JSON 更新您的春季border-collapse: collapse;

xxx-servlet.xml

如果您使用的是Spring boot ,仅在pom.xml中添加依赖项就足够了。

<mvc:annotation-driven>
     <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
   </mvc:message-converters>
</mvc:annotation-driven>