2014-01-08 4 views
0

JSON 응답에서 일부 선택된 값만 가져오고 싶습니다. 예를 들어 JSON에 100 개의 문자열 값이 포함되어 있으면 해당 값에서 @ 기호로 시작하는 값을 가져와야합니다.JSON 응답의 묶음에서 특정 값만 선택하는 방법은 무엇입니까?

어떻게하면됩니까?

다음

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

여기}]

내가 @ 기호를 가지고있는 이름을 가져 오기 위해 필요 내 JSON이다

당신은 @로 시작하는 이름을 얻는 방법을 아래에 사용할 수
+0

먼저 json을 구문 분석해야합니다. pasring 부분은 어디에 있습니까? – 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

@ 아이즈 : 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(); 
     } 
관련 문제