[]byte를 JSON으로 마샬링
Go에서 []byte를 JSON으로 마샬링하는 것은 다른 데이터 유형과 약간 다릅니다. JSON 패키지는 바이트를 배열로 직접 인코딩하는 대신 []byte를 base64로 인코딩된 문자열로 인코딩합니다. 이 동작은 인코딩/json 문서에 명시적으로 명시되어 있습니다.
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.
Base64-Encoded String Output
귀하의 경우 json.Marshal( 그룹)에는 "AAAAAQID"가 포함되어 있습니다. 이는 []바이트 슬라이스의 base64 인코딩을 나타냅니다.
originalBytes := []byte{0, 0, 0, 1, 2, 3} encodedString := base64.StdEncoding.EncodeToString(originalBytes) fmt.Println(encodedString) // Output: AAAAAQID
Base64 데이터 디코딩
인코딩된 문자열에서 원래 []바이트 값을 검색하려면 base64 데이터를 디코딩할 수 있습니다:
decodedBytes, err := base64.StdEncoding.DecodeString("AAAAAQID") if err != nil { // Handle error } fmt.Println(decodedBytes) // Output: [0 0 0 1 2 3]
위 내용은 Go의 `json.Marshal`이 `[]byte`를 Base64 문자열로 인코딩하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!