title: Converting JSONObject to JSONArray
body: <p>I'm currently learning some android programming with JAVA. My teacher shared this piece of code which will consume an API, get its JSON file, and convert it to a JSONArray file. Then he will Iterate through that JSONArray and put them into an ArrayList before displaying them onto an activity.</p>
  
  <p>The problem is that the API that I'm consuming returns a JSONObject file instead, and I do not know how to properly convert this to JSONArray.</p>
  
  <pre><code>import android.util.Log;
  
  import org.json.JSONArray;
  import org.json.JSONException;
  import org.json.JSONObject;
  import java.io.BufferedInputStream;
  import java.io.BufferedReader;
  import java.io.DataOutputStream;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.io.UnsupportedEncodingException;
  import java.net.HttpURLConnection;
  import java.net.URL;
  import java.net.URLEncoder;
  import java.util.HashMap;
  
  public class JSONParser {
  
  String charset = "UTF-8";
  HttpURLConnection conn;
  DataOutputStream wr;
  StringBuilder result;
  URL urlObj;
  JSONArray jObj = null;
  StringBuilder sbParams;
  String paramsString;
  
  public JSONArray makeHttpRequest(String url, String method) {
  
      sbParams = new StringBuilder();
  
     if(method.equals("GET")){
          // request method is GET
  
          if (sbParams.length() != 0) {
              url += "?" + sbParams.toString();
          }
  
          try {
              urlObj = new URL(url);
  
              conn = (HttpURLConnection) urlObj.openConnection();
  
              conn.setDoOutput(false);
  
              conn.setRequestMethod("GET");
  
  
              conn.setRequestProperty("AccountKey", "pVU56+0hI26DNLeTzlU/Dw==");
              conn.setRequestProperty("UniqueUserId", "33c07f2f-b4c0-4151-acd3-e0829b303d2c");
              conn.setRequestProperty("accept", "application/json");
  
              conn.setConnectTimeout(15000);
  
              conn.connect();
  
          } catch (IOException e) {
              e.printStackTrace();
          }
  
      }
  
      try {
          //Receive the response from the server
          InputStream in = new BufferedInputStream(conn.getInputStream());
          BufferedReader reader = new BufferedReader(new InputStreamReader(in));
          result = new StringBuilder();
          String line;
          while ((line = reader.readLine()) != null) {
              result.append(line);
          }
  
          Log.d("JSON Parser", "result: " + result.toString());
  
      } catch (IOException e) {
          // e.printStackTrace();
      }
  
      conn.disconnect();
  
      // try parse the string to a JSON object
      try {
  
          jObj = new JSONArray(result.toString());
      } catch (JSONException e) {
          Log.e("JSON Parser", "Error parsing data " + e.toString());
      }
  
      // return JSON Object
      return jObj;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>API URL and its custom headers:</p>
  
  <pre><code>URL: http://datamall2.mytransport.sg/ltaodataservice/TaxiAvailability
  </code></pre>
  
  <p>headers-</p>
  
  <pre><code>AccountKey: pVU56+0hI26DNLeTzlU/Dw==
  UniqueUserId: 33c07f2f-b4c0-4151-acd3-e0829b303d2c
  accept: application/json
  </code></pre>
  
  <p>EDIT2: I use this to get my raw data with custom headers.
  <a href="http://requestmaker.com/" rel="nofollow">http://requestmaker.com/</a></p>
  
  <p>EDIT: This is the JSON that I get.</p>
  
  <pre><code>{
    "odata.metadata": "http://datamall2.mytransport.sg/ltaodataservice/$metadata#TaxiAvailability",
    "value": [
      {
        "Longitude": 103.84009,
        "Latitude": 1.35989
      },
      {
        "Longitude": 103.84679,
        "Latitude": 1.35544
      },
      {
        "Longitude": 103.76928,
        "Latitude": 1.4419
      }
      ....
      ]
      }
  </code></pre>