2

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

2 Answers 2

4

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();

}
Sign up to request clarification or add additional context in comments.

1 Comment

Yes, that's what I did. Thank you
2

you should be returning string not JSONArray,

String generate() throws NoSuchFieldException, CloneNotSupportedException{

      return facturationSvc.facturer().toString();
}

1 Comment

It works, but in Spring we dont need to use directly JsonArray

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.