JSON을 Go 구조체로 디코딩
Go에서 JSON 파일을 구조체로 구문 분석하려면 인코딩/json 패키지를 사용해야 합니다. 그러나 잘못된 JSON 구조 구문 분석으로 인해 예상치 못한 결과가 발생할 수 있습니다.
아래 제공된 코드 조각을 고려하세요.
var settings struct { serverMode bool sourceDir string targetDir string } func main() { // ... }
JSON 구성 파일 사용:
{ "serverMode": true, "sourceDir": ".", "targetDir": "." }
당신은 수수께끼 같은 출력이 나타날 수 있습니다.
false (false and two empty strings)
이 문제는 구조체 요소가 수출되지 않습니다. 기본적으로 소문자로 시작하는 구조체 요소는 JSON 인코더/디코더에 표시되지 않습니다. 이 문제를 해결하려면 첫 글자를 대문자로 시작하여 구조체 요소를 내보내세요.
var settings struct { ServerMode bool `json:"serverMode"` SourceDir string `json:"sourceDir"` TargetDir string `json:"targetDir"` }
구조체 요소를 내보내면 JSON 인코더/디코더가 구조체 값에 액세스하고 디코딩할 수 있습니다. 그러면 JSON 구성 파일이 구조체로 올바르게 구문 분석됩니다.
위 내용은 내 Go 구조체가 JSON을 올바르게 디코딩하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!