Der PHP-Editor Youzi bringt Ihnen einen Artikel über Golang mit dem Thema „Golang: JSON-Arrays, die auch Methoden haben“. Golang ist eine einfache und effiziente Programmiersprache und JSON-Array ist eines der am häufigsten verwendeten Datenformate. In diesem Artikel wird untersucht, wie JSON-Arrays in Golang bearbeitet werden, und es werden einige nützliche Methoden vorgestellt. Ganz gleich, ob Sie Anfänger oder erfahrener Entwickler sind, dieser Artikel kann Ihnen einige wertvolle Informationen und Tipps liefern. Finden wir es gemeinsam heraus!
Ich habe eine Datenstruktur wie diese:
type ( parent struct { items []*child } child struct { field string `json:"field"` } )
Ich hoffe auch parent
, dass es einen Weg gibt:
func (p *parent) example() { }
Aber die JSON-Anforderung ist, dass das übergeordnete Element nur ein Array ist:
[ { "field": "data" } ]
Ich möchte, dass parent
是一个简单的数组,但为了让 parent
ein einfaches Array ist, aber damit
Gibt es eine Möglichkeit, diese beiden Probleme mit einer Datenstruktur zu lösen?
greatgrandparent
包含[]grandparent
,而grandparent
有一个包含parent
的parent
(Um die Sache noch komplizierter zu machen, besteht die tatsächliche Datenstruktur, die ich verwenden muss, aus zwei Ebenen: greatgrandparent
enthält []grandparent
und grandparent
Dort ist ein
Problemumgehung
Damit das übergeordnete Element Methoden hat, darf es kein Array-Typ sein. Das ist möglich, es muss nur einen
Namen haben, da nur benannte Typen (oder Zeiger auf benannte Typen) Methoden implementieren können. Hier ist der gültige Go-Code:
type parent []*child
func (p parent) example() { /* ... */ }
parent
Beachten Sie, dass das obige
json.unmarshaler
/json.marshaler
-Schnittstelle implementieren zu lassen:
type parent struct { Items []*child } func (p *parent) UnmarshalJSON(data []byte) error { return json.Unmarshal(data, &p.Items) } func (p parent) MarshalJSON() ([]byte, error) { return json.Marshal(p.Items) }
Das obige ist der detaillierte Inhalt vongolang: JSON-Arrays, die auch Methoden haben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!