Heim >Backend-Entwicklung >Golang >So fügen Sie einem Objekt eine gültige JSON-Zeichenfolge hinzu

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

王林
王林nach vorne
2024-02-11 17:51:181045Durchsuche

如何向对象添加有效的 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"`
}

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"`
}
🎜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)
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen