Go에서 JSON 데이터를 처리할 때 JSON 문자열을 수동으로 구성하는 것보다 마샬링을 선호하는 경우가 많습니다. 이는 인프라 구성을 표현하는 데 사용되는 Terraform JSON 형식에도 적용됩니다. 그러나 제공된 예에서 임의의 "web1" 이름과 같은 동적 JSON 키를 발견할 때 일반적인 문제가 발생합니다.
제시되는 질문은 다음과 같습니다. Go의 필드 태그를 사용하여 이러한 동적 JSON 키를 처리하는 방법 (예: json:"aws_instance")?
안타깝게도 Go의 필드 태그는 동적 키를 직접 지원하지 않습니다. 제공된 솔루션은 필드 태그를 사용하여 정적 키("resource" 및 "aws_instance")를 나타내려고 시도하지만 동적 키 "web1"을 처리하지 못합니다.
대안으로는 맵을 사용하여 동적 키를 표현함으로써 런타임에 값을 할당할 수 있다고 제안합니다.
type Resource struct { AWSInstance map[string]AWSInstance `json:"aws_instance"` } type AWSInstance struct { AMI string `json:"ami"` Count int `json:"count"` SourceDestCheck bool `json:"source_dest_check"` }
여기서 예를 들어, AWSInstance는 동적 이름(예: "web1")으로 키가 지정된 맵이 됩니다. 그런 다음 필요에 따라 맵을 특정 값으로 채울 수 있습니다.
r := Resource{ AWSInstance: map[string]AWSInstance{ "web1": AWSInstance{ AMI: "qdx", Count: 2, }, }, }
맵을 사용하면 동적 JSON 키를 Go에서 쉽게 처리할 수 있으므로 필드 태그가 부족한 시나리오에서 마샬링을 효과적으로 사용할 수 있습니다.
위 내용은 필드 태그를 사용하여 Go에서 동적 JSON 키를 어떻게 마샬링할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!