>백엔드 개발 >Golang >예기치 않은 필드 이름이 포함된 JSON을 Go 구조체로 역정렬화하는 방법은 무엇입니까?

예기치 않은 필드 이름이 포함된 JSON을 Go 구조체로 역정렬화하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-24 12:29:18755검색

How to Unmarshal JSON with Unexpected Field Names into a Go Struct?

알 수 없는 필드 이름이 있는 JSON을 Struct로 역마샬링

질문:

알 수 없는 필드 이름이 있는 JSON을 역정렬화하는 것이 가능합니까? 미리 주어진 조건을 유지하면서 구조?

문제:

알 수 없는 필드 이름이 공통 구조를 래핑하는 JSON 응답을 고려해보세요. 이 구조는 구조체에 매핑되어야 하지만 필드 이름은 다양합니다.

{
    "unknown_field": {
            "known_field_1": [[1,2,3,4,5],[10,20,30,40,50],[100,200,300,400,500]],
            "known_field_2": [[11,21,31,41,51]],
            "known_field_3": [[12,22,32,42,52],[14,44,34,44,54]]
        }
}

답변:

예, 다음과 같이 맵을 사용하여 JSON을 역정렬화할 수 있습니다. 루트 구조체 요소. 여기서 키는 알 수 없는 필드 이름이고 값은 알려진 필드 이름의 인스턴스입니다. struct.

type mData struct {
    KnownField1 [][5]int `json:"known_field_1"`
    KnownField2 [][5]int `json:"known_field_2"`
    KnownField3 [][5]int `json:"known_field_3"`
}
var data map[string]mData
if err := json.Unmarshal(body, &data); err != nil {
    panic(err)
}

출력:

map[unknown_field:{[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]}]
unknown_field {[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]}

위 내용은 예기치 않은 필드 이름이 포함된 JSON을 Go 구조체로 역정렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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