So fügen Sie einem Objekt eine gültige JSON-Zeichenfolge hinzu

王林
Freigeben: 2024-02-11 17:51:18
nach vorne
1012 Leute haben es durchsucht

如何向对象添加有效的 json 字符串

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.

Frageninhalt

So etwas habe ich derzeit

type info struct {
    ids        []string `json:"ids"`
    assignment string   `json:"assignment"`
}
Nach dem Login kopieren

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)
Nach dem Login kopieren

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"`
}
Nach dem Login kopieren
🎜Beispiel: 🎜
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)
}
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage