2016-10-11 5 views
-1

내 JSON 데이터를 전체적으로 쓰지 않고 Android Studio에서 만든 json 파일을 가리키며 문제가있는 JAVA Object 스킬로 JSON을 추출합니다. 여기 내 코드가있다. 이 속으로Android Studio에서 만든 파일

System.out.println(
      gson.fromJson("{\"draw_date\":\"2016-10-07T00:00:00.000\",\"mega_ball\":\"14\",\"multiplier\":\"02\",\"winning_numbers\":\"24 37 42 50 65\"}", MegaPOJO.class)); 

:

System.out.println(gson.fromJson(jsonFile, MegaPOJO.class)); 

답변

0

당신이 이렇게 원시 자원 폴더에 JSON 파일을 배치 할 경우

이 차례 시도 감사드립니다.

콘텐츠를 가져 오기 위해 ResourceManager 클래스를 만들었습니다.

ResourceManager resourceManager = ResourceManager.getResourceManager(this); 
String jsonResult = resourceManager.getJSONFromRawResources("jsonfile"); 

을 그리고 당신은 사용할 수 있습니다 :

public class ResourceManager { 

    private final Context context; 
    private final Resources resources; 
    private static ResourceManager resourceManager; 

    private ResourceManager(Context context) { 
     this.context = context; 
     this.resources = context.getResources(); 
    } 

    public static ResourceManager getResourceManager(Context context) { 
     if (resourceManager == null) { 
      resourceManager = new ResourceManager(context); 
     } 

     return resourceManager; 
    } 

    public String getJSONFromRawResources(String jsonFilename) { 
     int resourceID = resources.getIdentifier(jsonFilename, "raw", context.getPackageName()); 

     InputStream inputStream = resources.openRawResource(resourceID); 
     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 
      StringBuilder jsonStringStringBuilder = new StringBuilder(); 

      String line; 
      while ((line = reader.readLine()) != null) { 
       jsonStringStringBuilder.append(line); 
      } 

      return jsonStringStringBuilder.toString(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return null; 
     } 
    } 
} 

다음과 같은 방법으로이 클래스에 액세스 할 수 있습니다

System.out.println(gson.fromJson(jsonResult, MegaPOJO.class)); 
+0

당신을 감사합니다! Geert, 지금 시도하십시오 – JtecX

+0

이 코드가 작동하도록하려면/raw 폴더 "jsonfile.json"에 jsonfile이라는 이름을 적어 놓았습니다. 또는 메소드 resourceManager.getJSONFromRawResources ("jsonfile")에서 문자열을 변경하십시오. –

+0

시도 해보니 다시 시도해주세요. – JtecX

관련 문제