2013-02-11 31 views
8

I m ottenendo questa risposta in un risultato di richiesta GET al serverCome analizzare la risposta Json in Android?

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

voglio solo estrarre il valore della "value" dalla risposta JSON sopra.

I m utilizzando questo codice per ottenere

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(); 

     } 

    }); 

mia domanda questa risposta è che come posso analizzare questo e ottenere il valore di soli "value" tag. grazie

risposta

18

è possibile analizzare stringa JSON corrente per ottenere value da esso come:

// 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: media im non ottenere u. si sta ricevendo una stringa json dal server –

0

Prova questa,

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

Grazie per l'aiuto .. voglio chiedere a uno di più. è questa risposta Json sto ottenendo? e analizzando –

+0

in che modo è diversa dalla risposta @ ρяσѕρєяK? – usman

2

Prova questo:

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

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

Non riesco a trovare nessuna JSON Array nella stringa JSON corrente come fornita con la domanda? –

+0

LL non è jsonArray, è jsonObject – mihail

+0

in che modo è diverso dalla risposta @ ρяσѕρєяK? – usman

2

provare questo

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

È possibile analizzare la risposta e ottenere il valore provare questo:

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(); 
    }