0
URL에서 JSON 파일을 읽어야하는 애플리케이션에서 Eclipse를 사용하고 있습니다.JSON이 객체, 배열 없음을 읽습니다.
내가 사용하고 코드는 다음 중 하나입니다 :
http://collegewires.com/android/2012/06/json-parsing-in-android/
좋아, 내가 JSON 파일을 읽기 위해 사용하고 클래스라고 Parser.java :
package com.cw.json;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
public class Parser {
static InputStream is = null;
static JSONObject jsonObject = null;
static String json = "";
// class constructor
public Parser() {
}
public JSONObject getJSONFromUrl(String url) {
// Making HTTP request
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException exception) {
exception.printStackTrace();
} catch (ClientProtocolException exception) {
exception.printStackTrace();
} catch (IOException exception) {
exception.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sBuilder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sBuilder.append(line + "\n");
}
is.close();
json = sBuilder.toString();
} catch (Exception exception) {
exception.printStackTrace();
}
// Parsing the string to a JSON object
try {
jsonObject = new JSONObject(json);
} catch (JSONException exception) {
exception.printStackTrace();
}
// JSON String
return jsonObject;
}
}
I 직접적으로 ARRAY 인 JSON 파일을 읽는 데이 코드를 사용했지만 코드에서 오류가 발생했습니다.
제 질문은 : 항상 Object를 읽는 대신 Array를 읽을 수 있습니까 ?? 다른 수업을 사용하고 계신가요?
오류 로그도 함께 게시하십시오. –
"다른 클래스를 사용하고 있습니까?" 당신은 다른 도구 또는 라이브러리를 의미합니다. 그러면 스택 오버플로에 대한 질문에서 그 부분이 벗어납니다 : "도구, 라이브러리 또는 좋아하는 오프 사이트 리소스를 추천하거나 찾도록 요청하는 질문은 스택 오버플로가 유치하기 쉬운 주제가 아닙니다. 고소 된 답변 및 스팸을 포함하는 대신 문제를 설명하고 지금까지 해결 된 문제를 설명합니다. " –
아마 [Jackson] (http://jackson.codehaus.org/)를 살펴 봐야 할 것입니다. JSON 직렬화/직렬화 해제를위한 훨씬 더 완벽한 라이브러리입니다. – jwismar