Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Anwendung der Json-Serialisierung in Golang
Golangs JSON-Serialisierungs- und Deserialisierungsvorgänge sind wirklich umständlich. Wenn Sie also an Hochsprachenfunktionen gewöhnt sind, wird es unangenehm sein, auf diese eher nativen Schreibmethoden umzusteigen.
Auswahl der Serialisierungsbibliothek
Wenn Sie eine kleine Demo schreiben oder ein kleines Tool ohne groß angelegte Nutzungsszenarien erstellen, ist die verwendete Bibliothek dieselbe, da die Leistung nicht offensichtlich ist. Wenn es jedoch in tatsächlichen Projekten verwendet wird und mit hoher Parallelität, großer Kapazität und anderen Szenarien einhergeht, empfehle ich dennoch die Verwendung
."encoding/json" 官当自带
json-iterator
ns Nanosekunden-Betriebsvorgang
Zuteilungszeiten |
Standarddekodierung 35510 ns/op | ||
---|---|---|---|
160 B/op | 3 Zuweisungen/op | Standardkodierung | |
712 B/op | 5. Zuweisungen/op | easyj Sohn kodieren | |
576 B/op | 3 Zuweisungen/op | jsoniter encode | |
384 B/op | 4 Zuweisungen/op | ||
Coding Case | Serialisierung | ||
struct struct | structure array | Zwei Möglichkeiten: Eine wird direkt in ein Strukturarray deserialisiert, die andere wird in ein Slice deserialisiert, der Inhalt ist eine Map[string]-Schnittstelle {} |
str := `[{"Name":"张三丰","Age":98,"Birthday":"2001-09-21","Sal":3800.85,"Skill":"武当剑法"},{"Name":"张无忌","Age":28,"Birthday":"2004-09-21","Sal":300.85,"Skill":"乾坤大挪移"}]` //定义一个slice var slice []map[string]interface{} //注意:反序列化map,不需要make,因为make操作被封装到Unmarshal函数 err := json.Unmarshal([]byte(str), &slice) if err != nil { fmt.Printf("unmarshal err=%v\n", err) } fmt.Printf("反序列化后 slice=%v\n", slice)
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Anwendung der Json-Serialisierung in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!