php-Editor Yuzai zeigt Ihnen, wie Sie einem Objekt einen gültigen JSON-String hinzufügen. Während des Entwicklungsprozesses müssen wir häufig Daten in das JSON-Format konvertieren und an das Frontend oder andere Systeme übertragen. Manchmal müssen wir jedoch neue Daten zu einem vorhandenen JSON-Objekt hinzufügen, was erfordert, dass wir JSON-Strings analysieren, bearbeiten und verbinden. In diesem Artikel stellen wir eine einfache und effektive Methode zur Implementierung dieser Funktion vor, damit Sie JSON-Daten besser verarbeiten können.
So etwas habe ich derzeit
type info struct { ids []string `json:"ids"` assignment string `json:"assignment"` }
Im Moment ist mein assignment
ein großer fest codierter JSON-String, der aus einer Datei gelesen wird.
Ich mache so etwas
r := Info{Ids: names, assignment: existingJsonString} body, _ := json.Marshal(r)
Aber der body
oben ist falsch, da die Zuweisung als String und nicht als JSON-Objekt angezeigt wird. Wie kann ich der Infostruktur body
是不正确的,因为赋值显示为字符串而不是 json 对象。我如何告诉信息结构 assignment
将是一个 json 字符串而不是常规字符串,以便 json.marshal
可以很好地使用它?
使用类型json.rawmessage,请注意应导出 assignment
mitteilen, dass sie eine JSON-Zeichenfolge anstelle einer regulären Zeichenfolge sein soll, damit json.marshal
gut damit funktionieren kann?
Lösung
🎜Verwenden Sie den Typ json.rawmessage. Bitte beachten Sie, dass er exportiert werden sollte 🎜: 🎜type info struct { ids []string `json:"ids"` assignment json.rawmessage `json:"assignment"` }
package main import ( "encoding/json" "fmt" ) type Info struct { Ids []string `json:"ids"` Assignment json.RawMessage `json:"assignment"` } func main() { r := Info{ Ids: []string{"id1", "id2"}, Assignment: json.RawMessage(`{"a":1,"b":"str"}`), } body, err := json.Marshal(r) if err != nil { panic(err) } fmt.Printf("%s\n", body) }
Das obige ist der detaillierte Inhalt vonSo fügen Sie einem Objekt eine gültige JSON-Zeichenfolge hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!