2013-06-13 4 views
-1

데이터베이스 항목을 검색하고 있습니다. 그리고 내 안드로이드 애플 리케이션에서 검색을 수행하고 항목을 하나의 개체에 대한 가치가 없다면 휴식 시간 json 얻을. 내가 가지고있는 경우, 예를 들어 json 개체 데이터가 변경되고 때로는 값이 없습니다.

이 데이터는 항목에 대한 반환 IBU 에게

이름 ID ABV

을하지 모든 항목 항목이 IBU 그것을 누락 된 경우 각 데이터의 값이 너무 포인트가 단지 그것에 대한 json에있는 데이터 포인트가 없으며 코드가 중지됩니다. 검색 할 때 검색어 중 하나가 중단되고 항목에 ibu가 표시됩니다. 그래서 아무 것도 얻지 못하면 그것을 무시하도록 시도했습니다. 아직도 멈췄다.

String beerId = ""; 
        String beerName = ""; 
        String beerDescription = "";; 
        String beerAbv = ""; 
        String beerIbu = ""; 

        //json.getJSONArray("data").length() 

        //get json items 
        for(int i = 0; i < 1; i++) { 

         try{ 
          beerId = json.getJSONArray("data").getJSONObject(i).getString("id"); 
         } 
         finally{} 

         beerName = json.getJSONArray("data").getJSONObject(i).getString("name"); 
         beerDescription = json.getJSONArray("data").getJSONObject(i).getString("description"); 
         beerAbv = json.getJSONArray("data").getJSONObject(i).getString("abv"); 
         try{ 
          beerIbu = json.getJSONArray("data").getJSONObject(i).getString("ibu"); 
         } 
         finally{beerIbu = "";} 
+0

'try {beerIbu = xxx; } finally {beerIbu = ""; }'<-'beerIbu'는 항상 _'' 값을 가질 것입니다. – fge

+0

@fge 그래서 마침내 꺼내야합니까? 나는 그것을 가져야한다고 말한다. 또한 마침내 비어있는 채로두면 여전히 작동하지 않습니다. – Mike

+0

그들이 존재하지 않는다면, 그걸 가져 와서 아무것도 반환하지 않았는지 확인하지 않고 사용하려고 시도하면 작동하지 않을 것입니다. 그러지 마. –

답변

1

이 문제를 해결하는 좋은 방법은 모든 작업이 찾고있는 대답을 반환하는 메서드 (void)를 만드는 것입니다. 그 무효 (그러나 같은 클래스에서) 반환 방법을 만들 수 밖에 다음

String beerId = GetBeerDataFromJSON(0,"id"); 
String beerName = GetBeerDataFromJSON(0,"name"); 
String beerDescription = GetBeerDataFromJSON(0,"description"); 
String beerAbv = GetBeerDataFromJSON(0,"abv"); 
String beerIbu = GetBeerDataFromJSON(0,"ibu"); 

: 내가 여기에 더 도움이 설명하는 YouTube 동영상 작업 만하고하는 코드입니다.

private String GetBeerDataFromJSON(int position, String whatToGet) { 
    String whatIsTheKeyYouAreLookFor = whatToGet; 
    int whereInTheJSONArrayForLoopIsTheData = position; 

    String holder = ""; 


    try{ 
     holder = json.getJSONArray("data").getJSONObject(whereInTheJSONArrayForLoopIsTheData).getString(whatIsTheKeyYouAreLookFor); 

    } catch (JSONException e) { 
     holder = ""; 
    } 



    return holder; 
} 

이 코드를 작성하는 데보다 효율적인 방법이 있습니다. 내 비디오에서 나는 더 설명 할 것이다. 그러나 이것은 현재는 효과가있을 것입니다.