2016-06-17 21 views
-2

Ich entwickle eine Android-Anwendung, ich muss eine Funktion implementieren, die meine JSON analysieren und mir bestimmte Ergebnisse zurückgeben.So wählen Sie bestimmte Daten aus JSON

Zum Beispiel, ich habe eine JSON mit diesem strcutures:

[ 
    { 
     "date":"17-06-2016", 
     "desc":"My description", 
     "id":"9", 
     "img":"http:\/\/myurl\/pathimage\/image.jpg", 
     "text":"Lorem Ipsum.", 
     "title":"My title" 
    }, { 
     "date":"14-06-2015", 
     "desc":"My description 2", 
     "id":"5", 
     "img":"http:\/\/myurl\/pathimage\/image.jpg", 
     "text":"Lorem Ipsum 2.", 
     "title":"My title 2" 
    } 

] 

ich mit id nur das Objekt auswählen muß = 9, wie kann ich dies tun? Wie kann ich programmatisch das JSON-Objekt unter Berücksichtigung der ID auswählen?

Ich weiß, wie JSON, zu analysieren, aber ich weiß nicht, wie programmgesteuert das JSON-Objekt unter Berücksichtigung der ID zu unterscheiden.

****** EDIT 1 ******

JSONArray newsReq; 
     try { 
      newsReq = new JSONArray(result.toString()); 
      for (int i = 0; i < newsReq.length(); i++) { 
       try { 
        if(obj.getInt("id")=='9'){ 
        JSONObject obj = newsReq.getJSONObject(i); 
        obj.getString("img"); 
        obj.getInt("id"); 
        obj.getString("title"); 
       } 
       } catch (JSONException e) { 
        Log.wtf("BulgariLog: ", e); 
       } 
      } 
     } catch (JSONException e) { 
      Log.wtf("BulgariLog: ", e); 
     } 
+2

Iterate über alle Objekte vergleichen die ID. Es ist nicht möglich, nur diese ID auszuwählen –

+0

Sie können nicht. Wie @ cricket_007 gezeigt hat, besteht Ihre einzige Option darin, über Ihre Objekte zu iterieren und den Parameter 'id' zu testen, bis Sie '9' finden. Denken Sie einen Moment darüber nach. Wie sonst würden Sie wissen, wenn ein Wert "9" ist, es sei denn, Sie lesen den Wert zuerst? – NoChinDeluxe

+0

Du könntest dein Glück mit [JsonPath] versuchen (https://github.com/jayway/JsonPath), keine Garantien, obwohl –

Antwort

0

Angenommen, Sie sind pasring das JSON-Array wie diese,

JSONArray jsonArray = new JSONArray(response); 

     for (int i = 0; i < jsonArray.size(); i++) { 

      JSONObject jsonObject = jsonArray.getJSONObject(i); 

      // get the id of current JSON object 
      String id = jsonObject.getString("id"); 

      // check if the id matches with your required id 
      if (id.contains("9")) { 
       // the JSON object matches with your desired one 
       // get the remaining values here 
      } else { 
      // skip the object since it doesn't matches your given id 
      } 
     } 
+0

Seien Sie vorsichtig, in diesem Fall ist besser verwenden .equals ("9"). –

+0

Ja und noch besser ist '" 9 ".equals()' –

Verwandte Themen