2013-02-11 133 views
8

I M獲得在GET請求的結果,這響應於服務器如何在android中解析Json響應?

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

我只是想從上面的JSON響應中提取的"value"值。

我米使用此代碼來獲得這種反應

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

     } 

    }); 

我的問題是,我該如何解析這個並獲得唯一"value"變量的值。 感謝

回答

18

可以解析當前的JSON字符串,從它得到value

// 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:平均IM沒有得到ü。是的,你從服務器得到json字符串 – 2013-02-12 05:32:44

0

試試這個,

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

感謝您的幫助..我想問一個這更多。這是我得到的Json迴應?並解析 – 2013-02-12 04:46:05

+0

與@ρяσѕρєяK的答案有什麼不同? – usman 2014-06-02 07:25:43

2

試試這個:

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

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

即時通訊不能找到任何Json數組在當前JSON字符串提供的問題? – 2013-02-11 13:14:05

+0

LL不是jsonArray,它是jsonObject – mihail 2013-02-11 13:32:14

+0

與@ρяσѕρєяK的答案有什麼不同? – usman 2014-06-02 07:24:44

2

試試這個

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

您可以分析您迴應並獲得價值試試這個:

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