title: Error Parsing Data - String cannot be converted to JSONObject
body: <p>I want to access Android apps through Web-Service. In the web service the new registration is performed. 
  In the android apps, the xml file for the new registration is made. The data is saved successfully in SQL server database and it save properly by web service and return data get in jason string. But when string is converted to JSONObject, it give me error like this:</p>
  
  <pre><code>Error parsing data org.json.JSONException: Value [{"userid":105,"created_at":"03-Oct-2013","success":1,"email":"rty@gmail.com","password":"rty12345","name":"rtyu"}] of type org.json.JSONArray cannot be converted to JSONObject
  </code></pre>
  
  <p>I have made activity for registration as RegisterActivity.java </p>
  
  <pre><code>              else
                {
                    erName.setText("");
                    erPass.setText("");
                    erEmail.setText("");
                    erCopass.setText("");
                    UserFunction userFunction = new UserFunction();
                    JSONObject json = userFunction.registerUser(name, email, password);
  
                    // check for login response
                    try {
                        if (json.getString(KEY_SUCCESS) != null) {
                            String res = json.getString(KEY_SUCCESS); 
                            if(Integer.parseInt(res) == 1){
                                // user successfully registred
                                // Store user details in SQLite Database
                                Databasehandler db = new Databasehandler(getApplicationContext());
                                JSONObject json_user = json.getJSONObject("user");
  
                                // Clear all previous data in database
                                userFunction.logoutUser(getApplicationContext());
                                db.addUser(json_user.getString(KEY_NAME), json_user.getString(KEY_EMAIL),   
                             json.getString(KEY_UID), json_user.getString(KEY_CREATED_AT));                        
                                // Launch Dashboard Screen
                                Intent login = new Intent(getApplicationContext(), LoginActivity.class);
                                // Close all views before launching Dashboard
                                login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                startActivity(login);
                                // Close Registration Screen
                                Toast.makeText(RegisterActivity.this,"You are Registered   successfully",Toast.LENGTH_SHORT).show();
                                finish();
                            }else{
                                // Error in registration
                                Toast.makeText(RegisterActivity.this,"User Allready Registered!!!",Toast.LENGTH_LONG).show();
                            }
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
          }
            });
  </code></pre>
  
  <p>In that the error is occur at the line:   </p>
  
  <pre><code>  if (json.getString(KEY_SUCCESS) != null)
  </code></pre>
  
  <p>In the JSONParser class, jObj get the null value. The problem is at the line:  <code>jObj = new JSONObject(json);</code><br>
  Code of the JSONParser class :</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, List&lt;NameValuePair&gt; params) {
  
      // Making HTTP request
      try {
          // defaultHttpClient
          DefaultHttpClient httpClient = new DefaultHttpClient();
          HttpPost httpPost = new HttpPost(url);
          httpPost.setEntity(new UrlEncodedFormEntity(params));
  
          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();
          Log.e("JSON", json);
      } 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 JSON String
      return jObj;
  
  }
  </code></pre>
  
  <p>} </p>
  
  <p>Another class of UserFunction in which the service call :
        public class UserFunction 
        {</p>
  
  <pre><code> private JSONParser jsonParser;
  
    // Testing in localhost using wamp or xampp 
   // use http://10.0.2.2/ to connect to your localhost ie http://localhost/
      private static String loginURL = "http://192.168.1.120/rvAndroidServices.ashx";
  private static String registerURL = "http://192.168.1.120/rvAndroidServices.ashx";
  private static String name1 = "http://192.168.1.120/rvAndroidServices.ashx";
  
  private static String login_tag = "login";
  private static String register_tag = "register";
  private static String name_tag = "name";
  
  // constructor
  public UserFunction(){
      jsonParser = new JSONParser();
  }
  
  /**
   * function make Login Request
   * @param email
   * @param password
   * */
  public JSONObject loginUser(String email, String password){
      // Building Parameters
      List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;();
      params.add(new BasicNameValuePair("tag", login_tag));
      params.add(new BasicNameValuePair("email", email));
      params.add(new BasicNameValuePair("password", password));
      jsonParser= new JSONParser();
      JSONObject json = jsonParser.getJSONFromUrl(loginURL, params);
      // return json
      // Log.e("JSON", json.toString());
      return json;
  }
  
  /**
   * function make Login Request
   * @param name
   * @param email
   * @param password
   * */
  public JSONObject registerUser(String name, String email, String password){
      // Building Parameters
      List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;();
      params.add(new BasicNameValuePair("tag", register_tag));
      params.add(new BasicNameValuePair("name", name));
      params.add(new BasicNameValuePair("email", email));
      params.add(new BasicNameValuePair("password", password));
      jsonParser   = new JSONParser();
      // getting JSON Object
      JSONObject json = jsonParser.getJSONFromUrl(registerURL, params);
      // return json
      return json;
  }
  
  
  /**
   * Function get Login status
   * */
  public boolean isUserLoggedIn(Context context){
      Databasehandler db = new Databasehandler(context);
      int count = db.getRowCount();
      if(count &gt; 0){
          // user logged in
          return true;
      }
      return false;
  }
  
  public String getAppCategorydetail(Context context){
      Databasehandler db = new Databasehandler(context);
      String count = db.getAppCategorydetail();
  
          return count;
  
  }
  /**
   * Function to logout user
   * Reset Database
   * */
  public boolean logoutUser(Context context){
      Databasehandler db = new Databasehandler(context);
      db.resetTables();
      return true;
  }
  
  public JSONObject chname(String name) 
  {
      List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;();
      params.add(new BasicNameValuePair("tag", name_tag));
      params.add(new BasicNameValuePair("name", name));
       JSONObject json = jsonParser.getJSONFromUrl(name1, params);
      return json;
  
  }
  
  }
  </code></pre>