php-Editor Yuzai gibt Ihnen Tipps zur Verwendung nicht erforderlicher JSON-Parameter in der Go-Sprache. Beim Schreiben von Go-Programmen müssen wir häufig JSON-Daten verarbeiten. Manchmal müssen wir möglicherweise nur einige der Parameter verwenden, aber nicht alle. In diesem Artikel erfahren Sie, wie Sie nicht erforderliche JSON-Parameter in Go verwenden, um JSON-Daten flexibler zu verarbeiten und die Lesbarkeit und Wartbarkeit Ihres Codes zu verbessern. Unabhängig davon, ob Sie Anfänger oder erfahrener Entwickler sind, erhalten Sie in diesem Artikel nützliche Tipps und Beispielcode, die Ihnen helfen, diese Funktion besser zu verstehen und anzuwenden. Lasst uns gemeinsam erkunden!
Hallo, ich entwickle die Rest-API in Go und möchte, dass der Benutzer JSON-Parameter übergibt:
Offset int64 `json:"offset"` Limit int64 `json:"limit"` SortBy string `json:"sortby"` Asc bool `json:"asc"` Username string `json:"username"` First_Name string `json:"first_name"` Last_Name string `json:"last_name"` Status string `json:"status"`
Aber sie sind nicht immer erforderlich, zum Beispiel kann der Benutzer einfach Offset
übergeben und die anderen ignorieren. Er kann sogar 0 Parameter senden. Wie kann ich das machen? Offset
并忽略其他。他甚至可以发送0个参数。我怎样才能做到这一点?
从 JSON 文本中解组值时,json
Problemumgehung
Beim Unmarshalling von Werten aus JSON-Text müssen im
-Paket nicht alle Felder angezeigt werden JSON gibt es keine Garantie dafür, dass alle JSON-Felder über passende Go-Felder verfügen. json
Es gibt also nichts Besonderes für Sie, organisieren Sie einfach das, was Sie haben, in Go-Werten für das, was Sie wollen oder wollen könnten.
-Paket das entsprechende Go-Feld nicht ändert, wenn ein Feld im JSON-Text fehlt. Wenn es also mit „frisch“ beginnt, string
类型的 SortBy
字段,如果 JSON 中缺少该字段,它将保留空 string
: ""
Nullwert
string
将是有效的 SortBy
值,您可以将此字段声明为指针:*string
。在这种情况下,如果 JSON 文本中缺少它,它将保留 nil
In den meisten Fällen reicht dies aus, um festzustellen, ob ein Feld (in JSON) vorhanden ist, beispielsweise wenn Sie in einer Go-Struktur ein
haben
Wenn ein Nullwert nützlich und gültig ist, können Sie zur Verwendung von Zeigern übergehen. Wenn in Ihrer Anwendung beispielsweise nullverwendet wird, d. h. der Nullwert eines beliebigen Zeigertyps. Sehen Sie sich dieses Beispiel an:
type Data struct { I int S string P *string } func main() { var d Data var err error d, err = Data{}, nil err = json.Unmarshal([]byte(`{"I":1, "S":"sv", "P":"pv"}`), &d) fmt.Printf("%#v %v\n", d, err) d, err = Data{}, nil err = json.Unmarshal([]byte(`{"I":1}`), &d) fmt.Printf("%#v %v\n", d, err) d, err = Data{}, nil err = json.Unmarshal([]byte(`{"S":"abc"}`), &d) fmt.Printf("%#v %v\n", d, err) }
main.Data{I:1, S:"sv", P:(*string)(0x1050a150)} <nil> main.Data{I:1, S:"", P:(*string)(nil)} <nil> main.Data{I:0, S:"abc", P:(*string)(nil)} <nil>
Das obige ist der detaillierte Inhalt vonWie verwende ich nicht erforderliche JSON-Parameter in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!