Reputation: 47
I want to return with my controller spring a JSONARRAY, but when running I receive this error:
java.lang.IllegalArgumentException: No converter found for return value of type: class org.codehaus.jettison.json.JSONArray
this is my code :
@RequestMapping(value = "/generate", method = RequestMethod.GET)
@ResponseBody
public JSONArray generate() throws NoSuchFieldException, CloneNotSupportedException{
return facturationSvc.facturer();
}
NB:The method "facturer()" of the service "facturationSvc" , returns a JSON ARRAY
Upvotes: 2
Views: 13991
Reputation: 4067
You should return a java List, not a JSONArray. Spring uses Jackson, and the purpose of jackson is to convert java object to/from base elements like JsonArray, and then to a Json String
You don't need to directly manage json, Spring does it all for you, so the solution here is to change your return types (of the controller and the service) and manage only java Objects
@RequestMapping(value = "/generate", method = RequestMethod.GET)
@ResponseBody public List<YourFacturerClass> generate() {
return facturationSvc.facturer();
}
Upvotes: 4
Reputation: 6574
you should be returning string not JSONArray,
String generate() throws NoSuchFieldException, CloneNotSupportedException{
return facturationSvc.facturer().toString();
}
Upvotes: 2