从spring控制器返回json数组

时间:2017-04-13 08:29:52

标签: java json spring spring-mvc controller

我想使用我的控制器弹簧返回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

2 个答案:

答案 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();
}