我想使用我的控制器弹簧返回JSONARRAY,但在运行时我收到此错误:
java.lang.IllegalArgumentException:找不到类型为:class org.codehaus.jettison.json.JSONArray的返回值的转换器
这是我的代码:
@RequestMapping(value = "/generate", method = RequestMethod.GET)
@ResponseBody
public JSONArray generate() throws NoSuchFieldException, CloneNotSupportedException{
return facturationSvc.facturer();
}
注意:方法" facturer()"服务" facturationSvc" ,返回JSON ARRAY
答案 0 :(得分:2)
您应该返回一个java List,而不是JSONArray。 Spring使用Jackson,而jackson的目的是将java对象转换为基本元素(如JsonArray),然后转换为Json String
您不需要直接管理json,Spring会为您完成所有操作,因此这里的解决方案是更改您的返回类型(控制器和服务)并仅管理Java对象
@RequestMapping(value = "/generate", method = RequestMethod.GET)
@ResponseBody public List<YourFacturerClass> generate() {
return facturationSvc.facturer();
}
答案 1 :(得分:1)
你应该返回字符串而不是JSONArray,
String generate() throws NoSuchFieldException, CloneNotSupportedException{
return facturationSvc.facturer().toString();
}