>백엔드 개발 >Golang >Go에서 예측할 수 없는 키를 사용하여 동적 JSON 응답을 효율적으로 처리하려면 어떻게 해야 합니까?

Go에서 예측할 수 없는 키를 사용하여 동적 JSON 응답을 효율적으로 처리하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-29 01:37:11328검색

How Can I Efficiently Handle Dynamic JSON Responses with Unpredictable Keys in Go?

지도를 사용하여 Go에서 동적 JSON 매핑

Go에서는 예측할 수 없는 키로 동적 JSON 응답을 매핑하는 것이 어려울 수 있습니다. 그러나 지도를 활용하면 유연한 솔루션이 제공됩니다.

키가 다양한 다음 JSON 응답을 고려하세요.

{
"items": [
{"name": "thing",
"image_urls": {
"50x100": [{
"url": "http://site.com/images/1/50x100.jpg",
"width": 50,
"height": 100
}, {
"url": "http://site.com/images/2/50x100.jpg",
"width": 50,
"height": 100
}],
"200x300": [{
"url": "http://site.com/images/1/200x300.jpg",
"width": 200,
"height": 300
}],
"400x520": [{
"url": "http://site.com/images/1/400x520.jpg",
"width": 400,
"height": 520
}]
}
}
]
}

이러한 동적 특성을 포착하려면 지도 기반 구조체를 생성하세요. Go의 맵은 임의의 키와 값을 허용하므로 이 시나리오에 이상적입니다.

type Items map[string][]ImageURL

여기서 Items 구조체는 문자열 키(다양한 JSON 키를 나타냄)와 [] 유형의 값이 있는 맵입니다. ImageURL.

이 구조체를 사용하려면 개별 이미지 항목에 대한 ImageURL 구조체를 정의하세요.

type ImageURL struct {
    URL    string
    Width  int
    Height int
}

이제, JSON 응답을 Items 구조체로 직접 역정렬화할 수 있습니다.

err := json.Unmarshal(data, &items)
if err != nil {
    // Handle error
}

이 접근 방식은 동적 JSON 응답에 대한 유연한 매핑을 제공하므로 가능한 모든 키를 미리 정의할 필요 없이 데이터를 캡처할 수 있습니다.

위 내용은 Go에서 예측할 수 없는 키를 사용하여 동적 JSON 응답을 효율적으로 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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