我想从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.jar
和jackson-databind-2.7.5.jar
。
谢谢!
答案 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>