2014-01-08 2 views
0

Я хочу получить только некоторые выбранные значения из ответа JSON. Например, если JSON содержит 100 строковых значений, тогда мне нужно взять значения, которые начинаются с символа @ из этих 100 значений.Как выбрать только определенные значения из группы ответов JSON?

Как я могу это сделать?

Ниже мой JSON,

[{"Obj" :  
    { "ID":"11", 
     "NAME":"XYZ", 
     "GENDER":"M" 
    } 
    { "ID":"11", 
     "NAME":"@XYZ", 
     "GENDER":"M" 
    } 
    { "ID":"11", 
     "NAME":"@XYZ", 
     "GENDER":"M" 
    } 

}]

Здесь мне нужно принести имя которых содержит символ @

+0

Сначала вам нужно разобрать json. Где находится пассинг? – Raghunandan

ответ

2

Вы можете использовать ниже метод, чтобы получить имя, которое начинается с @:

JSONObject jsonObject = new JSONObject(response);// u can change it as per your need 
JSONArray jArray = jsonObject.getJSONArray("Obj");// if your `Obj` is an JsonArray 
for (int i = 0; i < jArray.length(); i++) { 
    String json_name = jArray.getJSONObject(i).getString("NAME"); 
    if(json_name.startsWith("@")) 
    { 
    Log.d(TAG,"It start with @"); 
    } 
} 
+0

Спасибо за ответ, похоже, что я работаю, позвольте мне попробовать – Eyes

+0

@Eyes: попробуйте ответ geet, это действительно работает .. !! +1 –

+0

@geet Я думаю, что 'obj' - это объект. –

0

Попробуйте, как показано ниже:

private void parseJSON(String json) { 
    try { 

     JSONArray items = new JSONArray(<your Json Response>); 
     for (int i = 0; i < items.length(); i++) { 

      JSONObject item = items.getJSONObject(i); 
      System.err.println("Object---" + item.getString("Obj")); 
      JSONObject obj=item.getJSONObject("Obj"); 
      for (int j = 0; j < obj.length(); j++) { 
       String Name=obj.getString("NAME"); 
       if(obj.getString("NAME").toString().contains("@")) 
        { 
        Log.d("Name starts with-->", Name); 
       } 
       else 
       { 
         Log.d("Name does not start with-->", Name); 
       } 

      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 
+2

нехороший смысл этот ответ – Boopathi

0

Попробуйте это.

прежде всего, что не является допустимым JSON может быть ниже JSON является правильным форматом

[ 
    { 
     "Obj": [ 
      { 
       "ID": "11", 
       "NAME": "XYZ", 
       "GENDER": "M" 
      }, 
      { 
       "ID": "11", 
       "NAME": "@XYZ", 
       "GENDER": "M" 
      }, 
      { 
       "ID": "11", 
       "NAME": "@XYZ", 
       "GENDER": "M" 
      } 
     ] 
    } 
] 

если ваш ответ, как и выше попробуйте ниже кода, это может помочь вам.

 try { 
      JSONArray jsoArray = new JSONArray(json); 


      JSONArray JobjArray = jsoArray.getJSONObject(0).getJSONArray("Obj"); 
       for(int i=0; i < JobjArray.length(); i++) 
       {     
        JSONObject Jobj = JobjArray.getJSONObject(i); 
        Iterator<String> iter = Jobj.keys(); 
        while (iter.hasNext()) { 
         String key = iter.next(); 
         Log.v("key--", key); 
         try { 
          Object value = Jobj.get(key); 
          Log.v("value--", ""+value); 
          String str_value = value.toString().trim(); 
          if(str_value.startsWith("@")) 
          { 
           Log.d(""+str_value,"value started with @"); 
          } 
         } catch (JSONException e) { 
          // Something went wrong! 
          e.printStackTrace(); 
         } 
        } 
       } 

     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
Смежные вопросы