title: Convert string to a json object
body: <p>I want to create json object from a string that comes as a response from a servlet in my server.</p>
  
  <pre><code>public class JSONParser {
  
  static InputStream is = null;
  static JSONObject jObj = null;
  static String json = "";
  
  // constructor
  public JSONParser() {
  
  }
  
      public JSONObject getJSONFromUrl(String url,String a) {
  
          ArrayList&lt;NameValuePair&gt; postParameters = new ArrayList&lt;NameValuePair&gt;();
          postParameters.add(new BasicNameValuePair("branchname", a));
  
          try {
              // defaultHttpClient
              DefaultHttpClient httpClient = new DefaultHttpClient();
              HttpPost httppost = new HttpPost(url);
              httppost.setEntity(new UrlEncodedFormEntity(postParameters));
  
              HttpResponse httpResponse = httpClient.execute(httppost);
              HttpEntity httpEntity = httpResponse.getEntity();
              is = httpEntity.getContent();          
  
          } catch (UnsupportedEncodingException e) {
              e.printStackTrace();
          } catch (ClientProtocolException e) {
              e.printStackTrace();
          } catch (IOException e) {
              e.printStackTrace();
          }
  
          try {
              BufferedReader reader = new BufferedReader(new InputStreamReader(
                      is, "iso-8859-1"), 8);
              StringBuilder sb = new StringBuilder();
              String line = null;
              while ((line = reader.readLine()) != null) {
                  sb.append(line + "\n");
              }
              is.close();
              json = sb.toString();
          } catch (Exception e) {
              Log.e("Buffer Error", "Error converting result " + e.toString());
          }
  
          // try parse the string to a JSON object
          try {
              jObj = new JSONObject(json);
          } catch (JSONException e) {
              Log.e("JSON Parser", "Error parsing data " + e.toString());
          }
  
  
          return jObj;            
  }}
  </code></pre>
  
  <p>This is my servlet..</p>
  
  <pre><code>public class AvailabilityResponse extends HttpServlet {
  
  @Override
      protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
  
      PrintWriter out=response.getWriter();
  
          String br_id;
          br_id=request.getParameter("branchname");
  
      try{
                  Class.forName("com.mysql.jdbc.Driver").newInstance();
                  Connection con=DriverManager.getConnection("jdbc:mysql://localhost:8888  /atmlivedetails","root","root");  
          Statement st=con.createStatement();
          ResultSet rs=st.executeQuery("select atmbrno, atmbrname  from location_stat where act_brname='"+br_id+"'");
          int i=0;
          JSONArray jArray = new JSONArray();
          while(rs.next()){
  
      String s = rs.getString("atmbrno");
      String t = rs.getString("atmbrname");
  
      JSONObject arrayObj = new JSONObject();
  
      arrayObj.put("atmbrno",s);
      arrayObj.put("atmbrname",t);
  
      jArray.add(i,arrayObj);
      i++;
      }
      rs.close ();
      st.close ();
      out.print(jArray);
  }
  
      catch(Exception e){
              out.print(e);
      }
  
  
  }}
  </code></pre>
  
  <p>but when I run this it says Error </p>
  
  <pre><code>"parsing data org.json.JSONException: Value [{"atmbrname":"ANURADAPURA
  [ATM 2]","atmbrno":"ATM084"},{"atmbrname":"MANNAR BRANCH  
  ","atmbrno":"ATM344"}] of type org.json.JSONArray cannot be converted
  to JSONObject"
  </code></pre>
  
  <p>what is the wrong in this case?</p>
  
  <p>Here is my calling class</p>
  
  <pre><code>public class ListAtmActivity extends ListActivity{
  
  private static String url ="http://10.0.2.2:8080/hello/AvailabilityResponse";
  
  //TextView error;
  //String brName;
  
  //Bundle b = getIntent().getExtras();
  //String brName = b.getString("key");
  
  private static final String TAG_CONTACTS = "contacts";
  private static final String TAG_ID = "id";
  private static final String ATM_NO = "atmbrno";
  private static final String ATM_PLACE = "atmbrname";
  
  // contacts JSONArray
  //JSONArray contacts = null;
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.list_item);
  
      String brName=getIntent().getExtras().getString("key");
  
  
      /*Bundle b = getIntent().getExtras();
      brName = b.getString("key");
      */
  
  
      // Hashmap for ListView
      ArrayList&lt;HashMap&lt;String, String&gt;&gt; contactList = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
  
      // Creating JSON Parser instance
      JSONParser jParser = new JSONParser();
  
      // getting JSON string from URL
      JSONObject json = jParser.getJSONFromUrl(url,brName);
  
  
      try{
          //String results;
          JSONArray contacts = json.getJSONArray(TAG_CONTACTS);
  
          for(int i = 0; i &lt; contacts.length(); i++){
              JSONObject json_data = contacts.getJSONObject(i);
  
              // Storing each json item in variable
              String atm_id = json_data.getString(ATM_NO);
              String atm_name = json_data.getString(ATM_PLACE);
  
              HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();
  
              map.put(ATM_NO, atm_id);
              map.put(ATM_PLACE, atm_name);
  
              contactList.add(map);                
          }                       
      }
  
      catch(JSONException e) {
          e.printStackTrace();
  
      }
  
      /**
       * Updating parsed JSON data into ListView
       * */
     ListAdapter adapter = new SimpleAdapter(this, contactList,
              R.layout.list_main,
              new String[] { ATM_NO, ATM_PLACE }, new int[] {
                      R.id.name , R.id.email });
  
      setListAdapter(adapter);
  
  }}
  </code></pre>