2013-02-11 37 views
8

मैं हूँ सर्वरएंड्रॉइड में जेसन प्रतिक्रिया को कैसे पार्स करें?

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

मैं सिर्फ ऊपर json प्रतिक्रिया से "value" का मूल्य निकालना चाहते हैं करने के लिए GET अनुरोध का एक परिणाम में यह प्रतिक्रिया हो रही है।

मैं इस प्रतिक्रिया

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

आप के रूप में यह से value प्राप्त करने के लिए वर्तमान JSON स्ट्रिंग पार्स कर सकते हैं:

// 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 यू नहीं मिल रहा है। हाँ आप सर्वर से जेसन स्ट्रिंग प्राप्त कर रहे हैं –

0

इस प्रयास करें,

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

मदद के लिए धन्यवाद .. मैं इसे और पूछना चाहता हूं। क्या यह जेसन प्रतिक्रिया मैं मिल रहा हूँ? और पार्सिंग –

+0

यह @ ρяσѕρєяK उत्तर से अलग कैसे है? – usman

2

इस प्रयास करें:

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

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

प्रश्न के साथ प्रदान किए गए वर्तमान जेसन स्ट्रिंग में किसी भी जेसन ऐरे को खोजने में सक्षम नहीं है? –

+0

एलएल jsonArray नहीं है, यह jsonObject – mihail

+0

यह @ ρяσѕρєяK उत्तर से अलग कैसे है? – usman

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