Android에서 GSON을 사용하여 JSON 구문 분석: 문제 해결
GSON을 사용하여 JSON 데이터를 구문 분석하려고 하면 다음으로 인해 오류가 발생합니다. 예상치 못한 JSON 구조. 문제를 더 깊이 조사하고 해결책을 제시해 보겠습니다.
파싱하려는 JSON 구조에 루트 개체가 있는 것으로 보이지만 내용을 읽기 위해 Gson의 fromJson 메서드를 제대로 사용하지 않고 있습니다. 또한 Gson은 UTF-8 문자를 직접 처리하도록 설계되지 않았습니다.
올바른 구문 분석 방법
오류를 해결하려면 구문 분석 방법을 다음과 같이 수정해야 합니다. 다음은 다음과 같습니다.
<code class="java">public static <T> ArrayList<T> JsonParse(T t, InputStream inputStream) { ArrayList<T> lcs = new ArrayList<>(); try (JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF8"))) { reader.beginObject(); while (reader.hasNext()) { T cse = (T) gson.fromJson(reader, t.getClass()); lcs.add(cse); } reader.endObject(); } catch (Exception e) { e.printStackTrace(); } return (ArrayList<T>) lcs; }</code>
데이터 클래스 구조 수정
또한 JSON 구조와 일치하도록 GsonParse 클래스 구조를 수정해야 할 수도 있습니다. 다음은 주의가 필요한 변경 사항입니다.
UTF-8 처리
서버로부터 수신하는 JSON 응답이 UTF-8 형식으로 올바른지 확인하세요. HTTP 응답에 MIME 유형 헤더를 추가하여 올바른 인코딩을 지정할 수 있습니다. 예:
responseToClient.setContentType("application/json; charset=utf-8");
이러한 수정 사항을 고려하면 Android 애플리케이션에서 GSON을 사용하여 JSON 데이터를 성공적으로 구문 분석할 수 있습니다.
위 내용은 JSON 구조에 예상치 못한 루트 개체가 있는 경우 Android에서 GSON으로 JSON 구문 분석 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!