2016-06-17 3 views
-2

Я разрабатываю приложение для Android, мне нужно реализовать функцию, которая анализирует мой JSON и возвращает мне определенный результат.Как выбрать определенные данные из JSON

К примеру, у меня есть JSON с этим 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" 
    } 

] 

мне нужно выбрать только объект с идентификатором = 9, как я могу это сделать? Как я могу программным образом выбрать объект JSON, дискриминирующий уважение идентификатора?

Я знаю, как разбирать JSON, , но я НЕ знаю, как программно выбрать объект JSON, дискриминирующий уважение идентификатора.

****** 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

перебрать все объекты сравнения ID. Невозможно выбрать только ID ID –

+0

Вы не можете. Как указывал @ cricket_007, ваш единственный вариант - перебрать ваши объекты, проверяя параметр 'id', пока не найдете' 9'. Подумайте об этом на мгновение. Как еще вы знаете, если значение «9», если вы действительно не прочитали значение сначала? – NoChinDeluxe

+0

Вы можете попробовать свою удачу с [JsonPath] (https://github.com/jayway/JsonPath), никаких гарантий, хотя –

ответ

0

Предполагая, что вы pasring массив JSON, как это,

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

Будьте осторожны, в этом case лучше использовать .equals ("9"). –

+0

Да и еще лучше '' 9 ".equals()' –

Смежные вопросы