>백엔드 개발 >Golang >Golang을 사용하여 중첩된 json을 어떻게 디코딩하나요?

Golang을 사용하여 중첩된 json을 어떻게 디코딩하나요?

WBOY
WBOY앞으로
2024-02-10 18:45:081017검색

如何用 Golang 解码这个嵌套的 json?

Golang을 사용하여 중첩된 JSON을 디코딩하는 방법은 복잡한 데이터 구조를 다룰 때 많은 개발자가 직면하는 과제입니다. 이 기사에서는 PHP 편집기인 Banana가 Golang에서 JSON 패키지를 사용하여 중첩된 JSON 데이터를 구문 분석하고 처리하는 방법을 자세히 소개합니다. 이 기사의 내용을 연구하면 다양하고 복잡한 JSON 구조를 쉽게 처리하고 보다 효율적인 데이터 구문 분석 및 처리를 달성할 수 있습니다. 초보자이든 숙련된 개발자이든 이 기사에서는 JSON 디코딩의 어려운 문제를 해결하는 데 도움이 되는 유용한 팁과 샘플 코드를 제공합니다. Golang에서 중첩된 JSON을 디코딩하는 방법을 살펴보겠습니다!

질문 내용

파일과 데이터가 포함된 요청의 일부로 중첩된 json을 디코딩하려고 합니다.

데이터는 이렇게 생겼어요

으아아아

문서화하는 것을 잊어버렸기 때문에 처음에는 전체 오류를 포함하지 않았습니다.

으아아아

이 오류는 양식 데이터가 JSON이 아니기 때문에 발생하는 것 같은데 해결 방법을 모르겠습니다. 내 Flutter 코드가 유효한 JSON을 보내는 것 같습니다. 콘텐츠 유형은 multipart/form-data입니다. 이로 인해 오류가 발생할 수 있습니다. 내 코드의 파일 업로드 부분에 이 콘텐츠 유형이 필요하다고 생각합니다.

요청은 내 Flutter 클라이언트에서 왔으며 코드는 다음과 같습니다.

으아아아

my go API에서 이 작업을 수행하고 있습니다.

모델(아래 답변을 기준으로 편집됨):

으아아아

코드:

으아아아

httputil.DumpRequest -> 콘텐츠 유형: multipart/form-data

편집: 이 질문에 대한 답변을 바탕으로 다음과 같이 코드를 편집했습니다.

으아아아

이 결과는 다음과 같습니다.

으아아아

편집자:

저는 decoder := json.NewDecoder(part) 而不是 decoder := json.NewDecoder(r.Body)

을 사용하여 현재 문제를 해결했습니다.

이제 양식 파일을 가져오는 동안 오류 가 발생합니다. 어떻게든 부품을 사용해야 할 것 같은데 해당 부품에는 파일 속성이 없습니다. 멀티파트 요청에 양식 데이터를 추가했기 때문에 r.Body를 더 이상 사용할 수 없습니다. 이건 다른 문제인 것 같습니다.

해결 방법

이 방법으로 404 문제가 해결되지는 않지만(요청 처리기 코드로 질문을 업데이트하세요) 구조가 보내는 내용과 일치하지 않는 것 같습니다. 이 문제를 해결하려면 다음을 수행할 수 있습니다.

으아아아

이렇게 하면 요청 본문이 예상대로 디코딩되어야 합니다.

404의 경우 클라이언트 코드에서 보낸 요청 경로 및 메서드가 서버 요청 핸들러 경로 및 메서드와 일치하는지 다시 확인해야 합니다.

위 내용은 Golang을 사용하여 중첩된 json을 어떻게 디코딩하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제