문자열에서 Float64로의 유형 변환을 사용하여 JSON 디코딩
부동 소수점 숫자가 포함된 JSON 문자열을 디코딩할 때 다음과 같은 문제가 발생할 수 있습니다. 오류 "json: 문자열을 float64 유형의 Go 값으로 역마샬링할 수 없습니다." 이 문제는 JSON 디코더가 숫자를 문자열에서 float64 유형으로 자동 변환하려고 시도할 때 발생합니다.
이 문제를 해결하려면 ", 구조체 정의의 string" 태그:
type Product struct { Name string Price float64 `json:",string"` }
이 태그를 추가하면 JSON 디코더는 "price" 필드를 float64로 인코딩된 문자열로 처리합니다. 디코딩하는 동안 적절한 변환을 위해.
package main import ( "encoding/json" "fmt" ) type Product struct { Name string Price float64 `json:",string"` } func main() { s := `{"name":"Galaxy Nexus", "price":"3460.00"}` var pro Product err := json.Unmarshal([]byte(s), &pro) if err == nil { fmt.Printf("%+v\n", pro) } else { fmt.Println(err) fmt.Printf("%+v\n", pro) } }
이 수정을 통해 프로그램은 이제 JSON 문자열을 성공적으로 디코딩하고 "price" 필드를 float64 유형으로 올바르게 변환합니다.
위 내용은 JSON을 디코딩할 때 'json: 문자열을 float64 유형의 Go 값으로 역마샬링할 수 없습니다' 오류를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!