Chcę dostosować format kodowania struktury, ale dostałem błąd: json: błąd wywołania MarshalJSON dla typu main.Info: nieprawidłowy znak 'o' w literalnym fałszu (oczekiwanie "a") Co jest nie tak z moim kodem?Jak dostosować wyjście kodowania JSON w programie Go?
package main
import (
"bytes"
"encoding/json"
"fmt"
"log"
)
type Info struct {
name string
flag bool
}
func (i Info) MarshalJSON() ([]byte, error) {
var b bytes.Buffer
b.Write([]byte(i.name))
if i.flag {
b.Write([]byte(`"true"`))
} else {
b.Write([]byte(`"false"`))
}
return b.Bytes(), nil
}
func main() {
a := []Info{
{"foo", true},
{"bar", false},
}
out, err := json.Marshal(a)
if err != nil {
log.Fatal(err)
}
fmt.Printf(string(out))
}
Och, myślałem, że mógłbym wydać Marszałek, czego chcę, nawet nielegalny tekst JSON – Meng
@Meng To nie nazywa się JSON marshaling, to się nazywa generowanie _na_ binarnej/treści tekstowej. – icza