2012-01-04 9 views
18

Jestem początkującym w Android. W moim projekcie otrzymuję następujący json z odpowiedzi HTTP.Uzyskiwanie wartości ciągu z Json Object Android

[{"Date":"2012-1-4T00:00:00","keywords":null,"NeededString":"this is the sample string I am needed for my project","others":"not needed"}] 

Chcę uzyskać "NeededString" z powyższego json.Jak go uzyskać.

+0

https://androidbeasts.wordpress.com/2015/08/04/json-parsing-tutorial/ – Aakash

Odpowiedz

48

To może ci pomóc.

JSONArray arr = new JSONArray(result); 
JSONObject jObj = arr.getJSONObject(0); 
String date = jObj.getString("NeededString"); 
+2

Dziękuję za szybkie Odpowiadać. Mam to. Wielkie dzięki. – Dray

+0

Co to jest kod php po stronie serwera do wysyłania odpowiedzi? –

+0

tutaj jest mój format json i otrzymuję ciąg json jak podano poniżej.Ale chcę uzyskać szczególną wartość, jak go zdobyć? {"login": [{"status": "błąd"}}} –

3

Dołącz do projektu org.json.jsonobject.

Następnie można to zrobić:

JSONObject jresponse = new JSONObject(responseString); 
responseString = jresponse.getString("NeededString"); 

Zakładając, responseString posiada odpowiedź otrzymałeś.

Jeśli chcesz wiedzieć, jak konwertować odebraną odpowiedź na łańcuch, oto jak to zrobić:

ByteArrayOutputStream out = new ByteArrayOutputStream(); 
response.getEntity().writeTo(out); 
out.close(); 
String responseString = out.toString(); 
+0

dziękuję za szybką odpowiedź. – Dray

8

Wystarczy dostać JSONArray i iteracyjne JSONObject wewnątrz tablicy za pomocą pętli choć w twoim przypadku jest to tylko jeden JSONObject, ale możesz mieć więcej.

JSONArray mArray; 
     try { 
      mArray = new JSONArray(responseString); 
      for (int i = 0; i < mArray.length(); i++) { 
        JSONObject mJsonObject = mArray.getJSONObject(i); 
        Log.d("OutPut", mJsonObject.getString("NeededString")); 
       } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
+0

Dziękuję za szybką odpowiedź. – Dray

+0

Co to jest kod php na serwerze do wysyłania odpowiedzi? (Z tym kluczem "NeededString") –

1

Jeśli można użyć JSONObject bibliotekę, można po prostu

JSONArray ja = new JSONArray("[{\"Date\":\"2012-1-4T00:00:00\",\"keywords\":null,\"NeededString\":\"this is the sample string I am needed for my project\",\"others\":\"not needed\"}]"); 
    String result = ja.getJSONObject(0).getString("NeededString"); 
+0

dziękuję za szybką odpowiedź ... – Dray

0

myślę, że pomocne dla Ciebie

   JSONArray jre = objJson.getJSONArray("Result"); 

       for (int j = 0; j < your array NAme.length(); j++) { 
        JSONObject jobject = your array NAme.getJSONObject(j); 

        String date = jobject.getString("Date"); 
        String keywords=jobject.getString("keywords"); 
        String needed=jobject.getString("NeededString"); 

       } 
0

Oto rozwiązanie Kiedyś dla mnie Czy prace dotyczące pobierania JSON ze stringa

protected String getJSONFromString(String stringJSONArray) throws JSONException { 
     return new StringBuffer(
       new JSONArray(stringJSONArray).getJSONObject(0).getString("cartype")) 
        .append(" ") 
        .append(
       new JSONArray(employeeID).getJSONObject(0).getString("model")) 
       .toString(); 
    } 
2

Można użyć getString

String name = jsonObject.getString("name"); 
// it will throws exception if the key you specify doesn't exist 

lub optString

String name = jsonObject.optString("name"); 
// it will returns the empty string ("") if the key you specify doesn't exist 
Powiązane problemy