2016-02-29 2 views
0

enter image description here Предоставление ошибки В EXCEPTION .... json data parsing error в catch в методе postexecute, пожалуйста, помогите, как разрешить. Когда введенные в него данные будут работать, и он начнет работать ненасытно, но когда время отправить данные показывают, что это ошибка синтаксического анализа JSON данныхjson data parsing error android studio

/** 
* Created by Mian on 2/28/2016. 
*/ 
import android.content.Context; 
import android.os.AsyncTask; 
import android.widget.Toast; 
import org.json.JSONException; 
import org.json.JSONObject; 
import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLEncoder; 
public class SignupActivity extends AsyncTask<String, Void, String> { 
    private Context context; 
    public SignupActivity(Context context) { 
     this.context = context; 
    } 

    protected void onPreExecute() { 
    } 
    @Override 
    protected String doInBackground(String... arg0) { 
     String fullName = arg0[0]; 
     String userName = arg0[1]; 
     String passWord = arg0[2]; 
     String phoneNumber = arg0[3]; 
     String emailAddress = arg0[4]; 
     String link; 
     String data; 
     BufferedReader bufferedReader; 
     String result; 
     try { 
      data = "?fullname=" + URLEncoder.encode(fullName, "UTF-8"); 
      data += "&username=" + URLEncoder.encode(userName, "UTF-8"); 
      data += "&password=" + URLEncoder.encode(passWord, "UTF-8"); 
      data += "&phonenumber=" + URLEncoder.encode(phoneNumber, "UTF-8"); 
      data += "&emailaddress=" + URLEncoder.encode(emailAddress, "UTF-8"); 
      link = "http://livethuglife.com/signup.php" + data; 
      URL url = new URL(link); 
      HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
      bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream())); 
      result = bufferedReader.readLine(); 
      return result; 
     } catch (Exception e) { 
      return new String("Exception: " + e.getMessage()); 
     } 
    } 
    @Override 
    protected void onPostExecute(String result) { 
     String jsonStr = result.toString(); 
     if (jsonStr != null) { 
      try { 
       JSONObject jsonObj = new JSONObject(jsonStr); 
       String query_result = jsonObj.getString("query_result"); 
       if (query_result.equals("SUCCESS")) { 
        Toast.makeText(context, "Data inserted successfully. Signup successfull.", Toast.LENGTH_SHORT).show(); 
       } else if (query_result.equals("FAILURE")) { 
        Toast.makeText(context, "Data could not be inserted. Signup failed.", Toast.LENGTH_SHORT).show(); 
       } else { 
        Toast.makeText(context, "Couldn't connect to remote database.", Toast.LENGTH_SHORT).show(); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
       Toast.makeText(context, "Error parsing JSON data.", Toast.LENGTH_SHORT).show(); 
      } 
     } else { 
      Toast.makeText(context, "Couldn't get any JSON data.", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 
+0

то, что ошибки вы получаете? –

+0

json data parsing error –

+0

Это ваша ошибка, что такое ошибка в logcat? –

ответ

1

Лучше использовать Class согласно вашему Form, что вы были проводки в Server.

  1. Простой Java-класс с числом полей, которое должно содержать полные данные формы на сервере. Как я определил как SignUp Класс.
  2. Затем сделать object этого Class SignUp заполнила object в соответствующие значения, которые вы хотите опубликовать в сервере.
  3. Теперь измените что object на JSON Использование Google gson.jar (Вы можете загрузить его с помощью функции поиска ее в Интернете)

    Простой пример, который я показал вам ..

A Простой POJOClassПодпись

Class SignUP{ 
    private String fullname; 
    private String username; 
    private String passoword; // Define Number of Variable as per your Need 
    private String phonenumber; 
    private String emailaddress; 

     //Getter and Setters Method. 
} 

Теперь Инстанцировать свой класс и попробовать GoogleGSON библиотечные банки, чтобы разобрать его как JSON Object.

Простой Logic Преобразовать Object из ClassSIGNUP к JSON.

protected String doInBackground(String... arg0) { 
    String fullName = arg0[0]; 
    String userName = arg0[1]; 
    String passWord = arg0[2]; 
    String phoneNumber = arg0[3]; 
    String emailAddress = arg0[4]; 

    SignUP obj = new SignUP(); 
    obj.setFullName(URLEncoder.encode(fullName, "UTF-8")); 
    obj.setUserName(URLEncoder.encode(userName, "UTF-8")); 
    obj.setPassword(URLEncoder.encode(passWord, "UTF-8");); 
    obj.setPhoneNumber(URLEncoder.encode(phoneNumber,"UTF-8");); 
    obj.setEmailAddress(URLEncoder.encode(emailAddress, "UTF-8");); 

    Gson gson = new Gson(); 

    System.out.println(gson.toJson(obj)); 
    } 

Выход:

{ 
    "fullName":"FullName", 
    "username":"Lokesh", 
    "password":"Gupta", 
    "phonenumber":"73479273423", 
    "emailaddress":"abc @abc.com" 
} 

Вы также можете попробовать How to Convert Java Object to JSON Using Google GSON API

+0

, пожалуйста, выберете –

+0

, это уместно понять, я думаю. Если у вас мало знаний о java .. Thank you –

+0

передать что-то объекту класса, который вы делаете, чтобы я прошел.? –