Android에서 GSON을 사용하여 JSON 구문 분석
문제:
오류가 발생했습니다. GSON을 사용하여 JSON 데이터를 구문 분석하려고 할 때 JSON 데이터의 73번째 줄에 있습니다. 특히 오류는 BEGIN_OBJECT를 예상했지만 NAME이 발생했음을 나타냅니다.
답변:
1. 구문 분석 방법 조정:
다음과 같이 GSON 값을 읽도록 JsonParse 메서드를 수정하는 것이 좋습니다.
<code class="java">Gson gson = new Gson(); Reader reader = new InputStreamReader(ims); GsonParse gsonObj = gson.fromJson(reader, GsonParse.class);</code>
목록이 아닌 JSON 데이터의 단일 블록을 수신한다고 가정합니다. , 이 접근 방식이 작동해야 합니다. ims 변수를 조정하여 읽고 싶은 스트림을 정의하세요.
2. 클래스 구조 검토:
GsonParse 및 Words 클래스에 올바른 필드 이름과 데이터 유형이 있는지 확인하세요. 업데이트된 버전은 다음과 같습니다.
GsonParse.class:
<code class="java">public class GsonParse { private String count; private String colbreak; private String score; private List<Words> mWords = new ArrayList<>(); private String seek; // getters and setters omitted for brevity }</code>
Words.class:
<code class="java">public class Words { private String count; private String word; private String name; private String words; private String seek; // getters and setters omitted for brevity }</code>
3. UTF-8 인코딩:
GSON은 UTF-8 문자를 직접 지원하지 않으므로 HTTP를 통해 응답을 받는 경우 HTTP 응답 자체에서 UTF-8로 변환해야 합니다. . 다음 코드를 사용할 수 있습니다:
<code class="java">String jsonString = new Gson().toJson(objectToEncode); byte[] utf8JsonString = jsonString.getBytes("UTF8"); responseToClient.write(utf8JsonString, 0, utf8JsonString.Length);</code>
4. 추가 고려 사항:
위 내용은 Android에서 GSON으로 JSON을 구문 분석할 때 \"BEGIN_OBJECT가 예상되지만 NAME이 발견되었습니다\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!