2013-02-11 8 views
8

i bin immer diese Reaktion in Folge der GET-Anfrage an den ServerWie analysiert man die JSON-Antwort in Android?

{"LL": { "control": "dev/sys/getkey", "value": "4545453030304138303046392035343733373432363020323031332D30322D31312031383A30313A3135", "Code": "200"}} 

Ich möchte nur den Wert von "value" aus der obigen json Antwort extrahieren.

ich diesen Code verwende diese Antwort ist

findViewById(R.id.button1).setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      HttpResponse response = null; 
      try { 
       HttpClient client = new DefaultHttpClient(); 
       HttpGet request = new HttpGet(); 
       request.setURI(new URI(
         "http://192.168.14.247/jdev/sys/getkey")); 
       response = client.execute(request); 
      } catch (URISyntaxException e) { 
       e.printStackTrace(); 
      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      String responseText = null; 
      try { 
       responseText = EntityUtils.toString(response.getEntity()); 
      } catch (ParseException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
       Log.i("Parse Exception", e + ""); 

      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
       Log.i("IO Exception 2", e + ""); 

      } 

      Log.i("responseText", responseText); 

      Toast.makeText(MainActivity.this, responseText + "", 
        Toast.LENGTH_SHORT).show(); 

     } 

    }); 

meine Frage zu bekommen, dass, wie kann ich diese analysieren und den Wert von nur "value" Tag bekommen. Dank

Antwort

18

Sie aktuelle JSON-String analysieren kann value von ihm zu bekommen:

// Convert String to json object 
JSONObject json = new JSONObject(responseText); 

// get LL json object 
JSONObject json_LL = json.getJSONObject("LL"); 

// get value from LL Json Object 
String str_value=json_LL.getString("value"); //<< get value here 
+0

@QadirHussain: mean im bekommen u nicht. Ja, Sie bekommen JSON String vom Server –

0

Versuchen Sie dieses,

JSONObject ResponseObject = new JSONObject(Response); 
String str = ResponseObject.getJSONObject("LL").getString(value); 
+0

Danke für die Hilfe .. Ich möchte einen mehr fragen. Ist das Json Response ich bekomme? und Parsing –

+0

Wie unterscheidet es sich @ ρяσѕρєяK Antwort? – usman

2

Try this:

JSONObject json= json1.getJSONObject("LL");  

String value= json.getString("value"); 
+0

Ich kann kein JSON-Array im aktuellen JSON-String finden, wie mit Frage bereitgestellt? –

+0

LL ist nicht jsonArray, es ist jsonObject – mihail

+0

Wie ist es anders als @ ρяσѕρєяK Antwort? – usman

2

versuchen, diese

JSONObject json = (JSONObject) JSONSerializer.toJSON(responseText); 
String value = json.getJSONObject("LL").getString("value"); 
0

können Sie Ihre Antwort analysieren und den Wert dieses erhalten versuchen:

try { 
    JSONObject jsonObject = new JSONObject(response);// Convert response string in to json object. 

    JSONObject jsonLL = jsonObject.getJSONObject("LL");// Get LL json object from jsonObject. 

    String strValue = jsonLL.getString("value");// Get value from jsonLL Object. 

    } catch (Exception e) { 
    e.printStackTrace(); 
    } 
Verwandte Themen