>  기사  >  Java  >  JSON 데이터를 구문 분석할 때 \"JSON 구문 오류: BEGIN_ARRAY가 필요했지만 BEGIN_OBJECT\" 오류가 발생하는 이유는 무엇입니까?

JSON 데이터를 구문 분석할 때 \"JSON 구문 오류: BEGIN_ARRAY가 필요했지만 BEGIN_OBJECT\" 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-27 11:50:30632검색

Why am I getting a

JSON 구문 오류: BEGIN_ARRAY가 필요했지만 BEGIN_OBJECT였습니다.

JSON 데이터를 구문 분석할 때 JSON 구문 분석기에 오류가 발생했습니다. 예상된 구조와 실제 구조.

문제:

"BEGIN_ARRAY를 예상했지만 1행 2열에서 BEGIN_OBJECT였습니다"라는 오류 메시지는 파서가 배열 구조( BEGIN_ARRAY)가 JSON 데이터에 포함되어 있지만 대신 객체 구조(BEGIN_OBJECT)가 발견되었습니다. 이러한 불일치로 인해 파서가 실패하고 예외가 발생할 수 있습니다.

서버 URL 및 요청:

제공된 코드 조각은 URL에 대한 HTTP POST 요청을 수행하고 검색합니다. 그 반응. URL은 원격 서버에서 JSON 데이터를 검색하도록 구성됩니다.

Post 클래스:

Post 클래스는 예상되는 데이터 배열 내에서 각 객체의 구조를 정의합니다. 그러나 오류 메시지에 표시된 대로 서버는 개체 배열이 아니라 단일 개체를 반환합니다.

해결책:

코드에서는 다음과 같은 배열을 예상합니다. 개체를 게시하지만 단일 개체를 받습니다. 이 문제를 해결하려면 응답을 배열 대신 단일 Post 객체로 해석하도록 코드를 수정하십시오.

<code class="java">Post post = gson.fromJson(reader, Post.class);</code>

<code class="java">List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>

위 줄로 대체하면 코드가 올바르게 JSON 응답을 단일 Post 객체로 해석하여 "BEGIN_ARRAY가 예상되었지만 BEGIN_OBJECT였습니다" 오류를 해결합니다.

위 내용은 JSON 데이터를 구문 분석할 때 \"JSON 구문 오류: BEGIN_ARRAY가 필요했지만 BEGIN_OBJECT\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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