I'm making an API that will return data in JSON. I also wanted on client side to make an utility class to call this API. Something like : JSONObject sendGetRequest(Url url); JSONObject sendPostRequest(Url url, HashMap postData); However sometimes the API send back array of object `[{id:1},{id:2}]` I now got four choices (): * Make the method test for `JSONArray` or `JSONObject` and send back an `Object` that I will have to cast in the caller * Make a method that returns `JSONObject` and one for `JSONArray` (like `sendGetRequestAndReturnAsJSONArray`) * Make the server always send `Arrays` even for one element * Make the server always send `Objects` wrapping my Array I going for the two last methods since I think it would be a good thing to force the API to send consistent type of data. But what would be the best practice (if one exist). Always send arrays? or always send objects?