Go에서 JSON 디코딩 오류
Go에서 json.Unmarshal 함수를 사용하여 JSON을 구조체로 디코딩할 때 상황을 이해하는 것이 중요합니다. 오류가 반환됩니다.
오류가 반환되지 않는 경우
일부 언어와 달리 Go의 JSON 디코더는 JSON 소스의 값이 있는 경우 오류를 보고하지 않습니다. 대상 구조체의 값과 일치하지 않습니다. 예를 들어 JSON에 구조체에 없는 필드가 포함되어 있으면 오류로 간주되지 않습니다.
오류가 반환될 때
그러나 json.Unmarshal은 다음 상황에서는 오류를 반환합니다.
예
다음 코드를 고려하세요. :
type A struct { Name string `json:"name"` } jsonString := `{"status": false}` var a A err := json.Unmarshal([]byte(jsonString), &a)
이 예에서 json.Unmarshal은 JSON에 예상되는 이름 필드가 포함되어 있지 않더라도 오류를 반환하지 않습니다. 디코더는 단순히 상태 필드를 무시하고 A 구조체의 이름 필드를 비워 둡니다.
그러나 JSON에 다음이 포함된 경우:
{"name": false}
json.Unmarshal은 오류를 반환합니다. JSON 값을 문자열 형식으로 변환할 수 없기 때문입니다.
위 내용은 Go의 json.Unmarshal은 언제 오류를 반환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!