>  기사  >  Java  >  Android에서 GSON으로 JSON을 구문 분석할 때 \"BEGIN_OBJECT가 예상되지만 NAME이 발견되었습니다\" 오류가 발생하는 이유는 무엇입니까?

Android에서 GSON으로 JSON을 구문 분석할 때 \"BEGIN_OBJECT가 예상되지만 NAME이 발견되었습니다\" 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-01 00:15:28365검색

Why am I getting a

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. 추가 고려 사항:

  • JSON 데이터를 구문 분석하기 전에 유효한지 확인하세요.
  • 디버깅 도구를 사용하여 구문 분석 프로세스의 문제를 식별하세요.
  • Android에서 JSON을 구문 분석하는 방법에 대한 추가 지침은 공식 GSON 문서를 참조하세요.

위 내용은 Android에서 GSON으로 JSON을 구문 분석할 때 \"BEGIN_OBJECT가 예상되지만 NAME이 발견되었습니다\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.