Go에서 []바이트를 문자열로 디코딩
Go에서 []바이트 슬라이스를 JSON 문자열로 마샬링할 때 변환이 수행되었습니다. by json.Marshal() 메서드는 바이트 슬라이스를 base64로 인코딩된 문자열로 인코딩합니다. 문서에 표시된 대로:
Array and slice values encode as JSON arrays, except that []byte encodes as a base64-encoded string, and a nil slice encodes as the null JSON object.
이 변환은 JSON의 원시 바이트에 대한 기본 표현 부족을 보완하기 위해 수행됩니다. base64 인코딩은 바이트 슬라이스가 유효한 JSON 문자열로 전송되도록 보장합니다.
인코딩 극복
[]의 원래 콘텐츠로 JSON 문자열을 생성하려면 바이트 필드의 경우 마샬링하기 전에 데이터를 문자열로 변환해야 합니다. 이는 string() 함수를 사용하여 달성할 수 있습니다.
<code class="go"> helloStr := "Hello" helloSlc := []byte(helloStr) obj := Msg{string(helloSlc)} json, _ := json.Marshal(obj) fmt.Println(string(json))</code>
이렇게 하면 원하는 출력이 생성됩니다.
{"Content":"Hello"}
이 접근 방식을 사용하면 JSON 문자열에 문자열의 원래 내용이 포함됩니다. , base64로 인코딩된 표현이 아닙니다.
위 내용은 Go JSON에서 []byte를 문자열로 디코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!