Beispiel
json.Marshal encodes byte slices as RFC 4648 Base64 strings but encodes fixed-size byte arrays as JSON numeric arrays, and json.Unmarshal rejects Base64 strings for byte arrays
sha256:c499e69e71bdececea5b130c2df41004fadce97b547d67885f2b0a211574cf36
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- json.Marshal encodes byte slices as RFC 4648 Base64 strings but encodes fixed-size byte arrays as JSON numeric arrays, and json.Unmarshal rejects Base64 strings for byte arrays HOW
- Pakete
- encoding/json 1.26.5
- Umgebung
- go
- Erstellt
- 2026-08-16T13:06:14Z
Häufige Annahme
json.Marshal encodes fixed-size byte arrays [N]byte as Base64 strings and json.Unmarshal decodes Base64 strings into byte arrays.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- assert json.Marshal encodes fixed-size byte array [N]byte as a JSON numeric array instead of a base64 string
- assert json.Unmarshal of a base64 string into [N]byte fails with UnmarshalTypeError
- assert json.Unmarshal of a JSON numeric array into [N]byte succeeds
- assert json.Marshal encodes byte slice []byte as a base64 string
- assert json.Unmarshal of a base64 string into []byte succeeds
- assert json.Unmarshal of a JSON numeric array into []byte succeeds
- assert json.Marshal encodes signed byte slice []int8 as a numeric array
Dateien
- .gitignore
- NOTES.md
- bytes_test.go
- csx.json
- go.mod
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- go 1.26 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-16 · ed25519:d91480838ac982c9