2016-04-17 9 views
0

Obwohl es viele Ressourcen und Links gibt, scheinen alle für mich nicht zu funktionieren. Ich habe einen PHP-Code, der ein JSON zurückgibt. Ich möchte Werte daraus in meiner Android-Anwendung extrahieren. Hier geht der PHP-Code.Android: Wie man eine Zeichenkette in JSON umwandelt und die Daten erhält?

<?php 
if($_SERVER['REQUEST_METHOD']=='POST'){ 

     $username1 = $_POST['username']; 
     $password1= $_POST['password']; 

     require_once'config.php'; 
     $sql = "SELECT * FROM users"; 
     $result1 = $conn->query($sql); 
     $stat= 1; 
     if ($result1->num_rows > 0) { 
      // output data of each row 
      while($row1 = $result1->fetch_assoc()) { 
       $user=$row1['username']; 
       $pass=$row1['password']; 
       if($user == $username1 && $pass == $password1){ 
        $arr = array("stat" => "Valid","resp"=>"Logged in"); 
        echo json_encode($arr); 
        $stat = 0; 
        break; 
       } 
      } 
     } 
     if ($stat == 1) { 
      echo "Username or Password is wrong!"; 
     } 
} 
else{ 
echo 'Error in method'; 
} 

?> 

Und das ist mein MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 



    private static final String REGISTER_URL = "http://10.22.20.129/alak/login.php"; 

    public static final String KEY_USERNAME = "username"; 
    public static final String KEY_PASSWORD = "password"; 



    private EditText editTextUsername; 

    private EditText editTextPassword; 

    private Button buttonRegister; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     editTextUsername = (EditText) findViewById(R.id.TFusername); 
     editTextPassword = (EditText) findViewById(R.id.TFpassword); 


     buttonRegister = (Button) findViewById(R.id.Blogin); 

     buttonRegister.setOnClickListener(this); 
    } 

    private void registerUser(){ 
     final String username = editTextUsername.getText().toString().trim(); 
     final String password = editTextPassword.getText().toString().trim(); 

     StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 

         Toast.makeText(MainActivity.this,response.toString(), Toast.LENGTH_LONG).show(); 
         try { 
          JSONArray json = new JSONArray(response.toString()); 
          String x=(String) json.getString("resp"); 
          if (x == "Logging") { 
           Intent in=new Intent(MainActivity.this,SignUp.class); 
           startActivity(in); 
          } 

         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 

        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show(); 
        } 
       }){ 
      @Override 
      protected Map<String,String> getParams(){ 
       Map<String,String> params = new HashMap<String, String>(); 
       params.put("username",username); 
       params.put("password",password); 
       return params; 
      } 

     }; 

     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
    } 

    @Override 
    public void onClick(View v) { 
     if(v == buttonRegister){ 
      registerUser(); 
     } 
    } 
} 
+1

Mögliches Duplikat von [JSON in Java parsen] (http://stackoverflow.com/questions/ 2591098/how-to-parse-json-in-java) –

+0

was genau funktioniert nicht? Debuggen Sie Ihr Logcat und zeigen Sie die Antwort oder einen möglichen Fehler an –

+0

Ich bekomme meine Antwort wie {"stat": "Valid", "resp": "Angemeldet"}. Jetzt möchte ich den Wert von stat (d. H. Gültig). –

Antwort

0

ich verwendet, um dieses und fand die solution.Thanks

JSONObject obj = null; 
         try { 
          obj = new JSONObject(response.toString()); 
          String stat = obj.getString("stat"); 
          Toast.makeText(MainActivity.this,stat.toString(), Toast.LENGTH_LONG).show(); 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
+1

Bitte aktualisieren Sie Ihre Frage, anstatt sie als Antwort zu posten –