java - JSON Exception when attempting to connect to Local server -


when register other users in local server following errors:

08-18 14:53:28.510: w/system.err(1223):     org.json.jsonexception: no value success 08-18 14:53:28.560: w/system.err(1223):     @ org.json.jsonobject.get(jsonobject.java:355) 08-18 14:53:28.590: w/system.err(1223):     @ org.json.jsonobject.getstring(jsonobject.java:515) 08-18 14:53:28.590: w/system.err(1223):     @ com.example.skelotong.regularusercreation$ruc.doinbackground(regularusercreation.java:134) 08-18 14:53:28.600: w/system.err(1223):     @ com.example.skelotong.regularusercreation$ruc.doinbackground(regularusercreation.java:1) 08-18 14:53:28.600: w/system.err(1223):     @ android.os.asynctask$2.call(asynctask.java:288) 08-18 14:53:28.630: w/system.err(1223):     @ java.util.concurrent.futuretask.run(futuretask.java:237) 08-18 14:53:28.630: w/system.err(1223):     @ android.os.asynctask$serialexecutor$1.run(asynctask.java:231) 08-18 14:53:28.640: w/system.err(1223):     @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1112) 08-18 14:53:28.640: w/system.err(1223):     @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:587) 08-18 14:53:28.650: w/system.err(1223):     @ java.lang.thread.run(thread.java:841) 

i don't know wrong. here code in java register users:

@suppresslint("newapi") private class ruc extends asynctask<string, integer, boolean> {     strictmode.threadpolicy policy = new strictmode.threadpolicy.builder()             .permitall().build();     final progressdialog pd = new progressdialog(regularusercreation.this);      @suppresslint("newapi")     @override     protected void onpreexecute() {         // todo auto-generated method stub         super.onpreexecute();         pd.setmessage("please wait");         pd.setprogressstyle(progressdialog.style_spinner);         pd.setcanceledontouchoutside(false);         pd.setcancelable(false);         pd.setindeterminate(true);         pd.show();         system.out.println("1");         strictmode.threadpolicy policy = new strictmode.threadpolicy.builder()                 .permitall().build();         strictmode.setthreadpolicy(policy);                 system.out.println(tag_success);         }      @override     protected boolean doinbackground(string... params) {          system.out.println(2);          // importing assets buttons, text fields         inputfullname = (edittext) findviewbyid(r.id.fullname2);         inputemail = (edittext) findviewbyid(r.id.email2);         inputpassword = (edittext) findviewbyid(r.id.password2);         inputusername = (edittext) findviewbyid(r.id.username2);         dateofbirth = (edittext) findviewbyid(r.id.dob2);         zip = (edittext) findviewbyid(r.id.zipcode2);         btnregister = (button) findviewbyid(r.id.create2);         btnlinktologin = (button) findviewbyid(r.id.cancel2);         registererrormsg = (textview) findviewbyid(r.id.errormessage3);         // skils = (edittext) findviewbyid(r.id.skills1);         system.out.println("3");          // register button click event          string name = inputfullname.gettext().tostring();         string email = inputemail.gettext().tostring();         string password = inputpassword.gettext().tostring();         string usernmae = inputusername.gettext().tostring();         string birth = dateofbirth.gettext().tostring();         string zipcode = zip.gettext().tostring();         // string skills = skils.gettext().tostring();          system.out.println(name + email + password + usernmae + birth                 + zipcode + 4 +tag_success);          // check login response         // check login response         try {             userfunction userfunction = new userfunction();             jsonobject json = userfunction.registeruser(name, email,                     password, usernmae, birth, zipcode,tag_success);             //system.out.println(json.get(tag_success));             if (json.optstring(tag_success) != null) {                  string res = json.getstring("success");                 system.out.println(91);                 system.out.println(res);                  if (integer.parseint(res) == 1) {                     publishprogress(1);                     // user registred                     // store user details in sqlite database                     databasehandler db = new databasehandler(                             getapplicationcontext());                     jsonobject json_user = json.getjsonobject("user");                     system.out.println(6);                     // clear 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),                             json_user.getstring(key_username),                             json_user.getstring(key_password),                             json_user.getstring(key_zip),                             json_user.getstring(tag_success));                     system.out.println("7");                      return true;                 } else {                      system.out.println("error");                     // error in registration                     registererrormsg                             .settext("error occured in registration");                     return false;                  }             } else {                 system.out.println(tag_success);                 return false;              }         } catch (jsonexception e) {             publishprogress(1);             e.printstacktrace();             system.out.println("9");             system.out.println(e.tostring());             system.out.println(e.getcause());             return false;         } catch (runtimeexception e) {             system.out.println("92");             system.out.println(e.tostring());             system.out.println(e.getcause());             return false;         } catch (exception e) {             system.out.println("93");             system.out.println(e.tostring());             system.out.println(e.getcause());         }          return false;     }      @override     protected void onprogressupdate(integer... values) {         // todo auto-generated method stub         strictmode.threadpolicy policy = new strictmode.threadpolicy.builder()                 .permitall().build();         strictmode.setthreadpolicy(policy);         super.onprogressupdate(values);         if (values.equals(1)) {             pd.setmessage("almost done");         }     } 

here code json:

static bufferedreader = null; static jsonobject jobj = null; static string json = "";  // constructor public jsonparser() throws jsonexception {  } public  void jsonobject(java.lang.string source) { } public jsonobject getjsonfromurl(string url, list<namevaluepair> param) {      // making http request     try {         // defaulthttpclient         defaulthttpclient httpclient = new defaulthttpclient();         httppost httppost = new httppost("http://10.0.2.2/db_android/");         httpresponse httpresponse = httpclient.execute(httppost);         bufferedreader in = new bufferedreader(new inputstreamreader(                 httpresponse.getentity().getcontent(),"iso-8859-1"),8);         = in;          system.out.println(json);         /**          * defaulthttpclient httpclient = new defaulthttpclient(); httppost          * httppost = new httppost(url);          *           * httpresponse httpresponse = httpclient.execute(httppost);          * httpentity httpentity = httpresponse.getentity(); =          * httpentity.getcontent();          *           */     } catch (unsupportedencodingexception e) {         e.printstacktrace();     } catch (clientprotocolexception e) {         e.printstacktrace();     } catch (ioexception e) {         e.printstacktrace();     } catch (exception e) {         e.printstacktrace();     }      try {         defaulthttpclient httpclient = new defaulthttpclient();         httppost httppost = new httppost("http://10.0.2.2/db_android/");         httpresponse httpresponse = httpclient.execute(httppost);         system.out.println(22);         bufferedreader reader = new bufferedreader(new inputstreamreader(                 httpresponse.getentity().getcontent(),"iso-8859-1"),8);         system.out.println(22);         stringbuilder sb = new stringbuilder();         string line = null;         system.out.println(33);         while ((line = reader.readline()) != null) {             sb.append(line);             system.out.println(44);         }         is.close();         system.out.println(55);         json = sb.tostring();         system.out.println(66);         system.out.println(json);         system.out.println(69);         system.out.println(sb.tostring());         system.out.println(67);     } catch (exception e) {         log.e("buffer error", "error converting result " + e.tostring());     }     // try parse string json object     try {         system.out.println(77);         stringbuilder sb = new stringbuilder();         json = sb.tostring();         log.e("adsf", json.tostring());         log.e("ads", json);         system.out.println(79);         jobj = new jsonobject("{"+json+"}");         system.out.println(88);     } catch (jsonexception e) {         log.e("json parser", "error parsing data " + e.tostring());         e.getcause();     }      // return json string     return jobj;  } 

}

here section of code in php relating everything:

} else if ($tag == 'register') {     // request type register new user     $response ["success"] = 1;     $response ["uid"] = $user ["unique_id"];     $response ["user"] ["name"] = $user ["name"];     $response ["user"] ["username"] = $user ["username"];     $response ["user"] ["email"] = $user ["email"];     $response ["user"] ["zipcode"] = $user ["zipcode"];     $response ["user"] ["password"] = $user ["password"];     $response ["user"] ["created_at"] = $user ["created_at"];     $response ["user"] ["updated_at"] = $user ["updated_at"];     $response ["user"] ["skills"] = $user ["skills"];     // check if user existed     if ($db->isuserexisted ( $email )) {         // user existed - error response         $response ["error"] = 2;         $response ["error_msg"] = "user existed";         echo json_encode ( $response );     } else if (! $db->validemail ( $email )) {         $response ["error"] = 3;         $response ["error_msg"] = "invalid email id";         echo json_encode ( $response );     } else {         // store user         $user = $db->storeuser ( $name, $email, $password, $unique_id, $dateofbirth, $zipcode, $skills, $username, $updated_at, $created_at );         if ($user) {             // user stored              $response ["uid"] = $user ["unique_id"];             $response ["user"] ["name"] = $user ["name"];             $response ["user"] ["username"] = $user ["username"];             $response ["user"] ["email"] = $user ["email"];             $response ["user"] ["zipcode"] = $user ["zipcode"];             $response ["user"] ["password"] = $user ["password"];             $response ["user"] ["created_at"] = $user ["created_at"];             $response ["user"] ["updated_at"] = $user ["updated_at"];             $response ["user"] ["skills"] = $user ["skills"];             $response ["user"] ["uid"] = $user ["unique_id"];              mail ( $email, $subject, $message, $headers );             echo json_encode ( $response );         } else {             // user failed store             $response ["error"] = 1;             $response ["error_msg"] = "json error occured in registartion";             echo json_encode ( $response );         }     } } 

and here 1 of functions data:

public function storeuser($name, $email, $username, $password, $zipcode, $skills) {     $uuid = uniqid('', true);     $hash = $this->hashssha($password);     $encrypted_password = $hash["encrypted"]; // encrypted password     $salt = $hash["salt"]; // salt     $result = mysql_query("insert users(unique_id, name, email, username,     encrypted_password, salt, created_at) values('$uuid', '$name', '$email',     '        $username','$zipcode', '$skills' '$encrypted_password', '$salt', now())");     // check successful store     if ($result) {         // user details         $uid = mysql_insert_id(); // last inserted id         $result = mysql_query("select * users uid = $uid");         // return user details         return mysql_fetch_array($result);     } else {         return false;     } } 

i'm sorry code listed in post. don't know how deep error is, know in between these lines of code.

string res = json.getstring("success");                 system.out.println(91);                 system.out.println(res); if (integer.parseint(res) == 1) {     //line 134 of regular user creation said in    log cat 

please me in way possible.

it means success key not exist.

every time set an error should set success false:

 $response ["success"] = 0; 

json has support boolean (true or false) should use it, make parsing easier.

boolean res = json.getboolean("success"); if(res){   //success } 

you didnt have map each property of user, can build multi dimensional array storing user object directly.

also should echo json once end, avoid invalid json if multiple condition met.

you have along following lines:

$response = array(); ... }else if ($tag == 'register') {      // check if user existed     if ($db->isuserexisted ( $email )) {         $response ["success"] = false;         $response ["error_msg"] = "user existed";         echo json_encode ( $response );     } else if (! $db->validemail ( $email )) {         $response ["success"] = false;         $response ["error_msg"] = "invalid email id";         echo json_encode ( $response );     } else {         // store user         $user = $db->storeuser ( $name, $email, $password, $unique_id, $dateofbirth, $zipcode, $skills, $username, $updated_at, $created_at );         if ($user) {             // user stored             // request type register new user             $response ["success"] = true;             $response ["user_data"] = $user;             mail ( $email, $subject, $message, $headers );             echo json_encode ( $response );         } else {             $response ["success"] = false;             $response ["error_msg"] = "json error occured in registartion";          }     } } echo json_encode ( $response ); 

Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -