JSON 데이터를 처리할 때 JSON 필드가 문자열로 표시되는 상황이 발생할 수 있습니다. 정수 대신 JSON Unmarshal이 실패하게 됩니다. 이 문제는 int64 값을 잘 처리하지 못하는 JavaScript가 JSON 데이터를 인코딩할 때 발생합니다.
다음 구조체를 고려하세요.
type tySurvey struct { Id int64 `json:"id,omitempty"` Name string `json:"name,omitempty"` }
표준 Marshal을 사용하여 이 구조체를 JSON으로 마샬링할 때 함수를 작성한 다음 Go 핸들러에 다시 게시하기 전에 jQuery로 name 필드를 수정하면 id 필드가 문자열로 인코딩될 수 있습니다. 이로 인해 JSON을 tySurvey 구조체로 역마샬링하려고 할 때 오류가 발생합니다.
json: cannot unmarshal string into Go value of type int64
이 문제를 해결하려면 JSON에 ,string을 추가하여 문자열에서 id 필드를 역마샬링할 수 있도록 지정할 수 있습니다. 태그:
type tySurvey struct { Id int64 `json:"id,string,omitempty"` // Add ",string" to handle string values Name string `json:"name,omitempty"` }
이를 통해 JSON Unmarshal은 id 필드의 문자열 표현을 성공적으로 변환할 수 있습니다. 정수.
빈 문자열은 정수로 역마샬링될 수 없으므로 ,string이 있는 필드에 생략을 설정하는 것은 권장되지 않습니다.
위 내용은 정수가 아닌 문자열일 때 JSON 필드를 역마샬링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!