Ich möchte Codierung Format einer Struktur anpassen, aber Fehler: Json: Fehler beim Aufrufen von MarshalJSON für den Typ main.Info: ungültiges Zeichen 'o' in Literal false (erwartet 'a') Was ist falsch mit meinem Code?Wie wird die JSON-Kodierungsausgabe in Go angepasst?
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))
}
Oh, ich habe gedacht, dass ich Marshal heraus, was auch immer ich will, auch illegale JSON Text – Meng
@Meng Das heißt nicht JSON Marshalling, das heißt die Generierung _any_ binary/Text Inhalt. – icza