2016-07-01 2 views
-1

나는 내가 JSON 문자열을 읽으려고 안드로이드 프로그래밍에 아주 새로운 해요 폐쇄되지 않은, 그래서 당신이 그림에서 볼 수 있듯이 나는 json 데이터가 포함 된 문자열을 만들어 :안드로이드 JSON은 - 리터럴 문자열이 제대로

enter image description here

당신은 내가 오류 얻을 볼 수 있듯이 : string literal isn't properly closed 난 그냥 테스트를 위해이 문자열에서 데이터를 읽을 수

및 작업 후, 나는 URL을 대체됩니다.

+1

한 줄. 샘플은 다음과 같습니다 "{"+ "\ '직원 \':"+ ... 나는이 코드를 사용 –

답변

0

당신은 자산 폴더 아래에 작성해야 JSON의 이름을 전달이 방법 속으로 테스트 목적

public static String loadJSONFromAsset(String name, Context context) { 
    String json = null; 
    try { 
     InputStream is = context.getAssets().open(name + ".json"); 
     int size = is.available(); 
     byte[] buffer = new byte[size]; 
     is.read(buffer); 
     is.close(); 
     json = new String(buffer, "UTF-8"); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
     return null; 
    } 
    return json; 
} 

에 대한 JSON 응답 객체를 만들려면이 방법을 사용할 수 있습니다 (응용 프로그램/SRC/메인/자산 /) 및 컨텍스트.

예 : (자산 폴더에 저장)

colors.json

[ 
    { 
    "hex": "#EFDECD", 
    "name": "Almond", 
    "rgb": "(239, 222, 205)" 
    }, 
    { 
    "hex": "#CD9575", 
    "name": "Antique Brass", 
    "rgb": "(205, 149, 117)" 
    }, 
] 

방법 사용 :

당신은 (각 라인은 하나의 문자열) 문자열을 추가 또는 작성해야
String json = loadJSONFromAsset(colors.json,context); 
+0

친애하는 친구는 함수 만도 esult 전화 : 보호 무효에서 onCreate (번들 savedInstanceState를) { \t \t super.onCreate (savedInstanceState); \t setContentView (R.layout.activity_parse_json_android_example); \t String json = loadJSONFromAsset ("colors.json", this); \t showMessage ("jsonresult", json); \t} –

+0

또 다른 질문은 json 파일의 필드에 액세스 할 수있는 방법입니다. 16 진수 이름 rgb를 하나씩 참조 할 수 있습니까? –

+1

[GSON] (https://guides.codepath.com/android/Leveraging-the-Gson-Library) ('자바 객체를 JSON으로 변환하고 역 직렬화 할 수있는 자바 직렬화/역 직렬화 라이브러리) 그것은 당신의 일을 덜어 줄 것입니다. –

관련 문제