Heim > Backend-Entwicklung > Golang > Wie entmarshaliere ich JSON-Strings in Int64-Go-Werte?

Wie entmarshaliere ich JSON-Strings in Int64-Go-Werte?

Barbara Streisand
Freigeben: 2024-11-14 17:16:02
Original
527 Leute haben es durchsucht

How to Unmarshal JSON Strings into Int64 Go Values?

JSON-Strings in Int64-Go-Werte entmarshalieren

Go-Programmierer stoßen häufig auf die Fehlermeldung „json: String kann nicht in Go-Wert vom Typ int64 entmarshaliert werden“, wenn sie versuchen, JSON zu entmarshalieren Daten. Dieser Fehler tritt auf, wenn das JSON-Feld, das einem int64-typisierten Go-Strukturfeld entspricht, einen Zeichenfolgenwert enthält.

Problemübersicht

Beachten Sie die folgende Go-Struktur:

type Survey struct {
    Id     int64  `json:"id,omitempty"`
    Name   string `json:"name,omitempty"`
}
Nach dem Login kopieren

Wenn Sie diese Struktur in JSON marshallen und das „id“-Feld in einem JavaScript-Client ändern, sendet dieser möglicherweise eine JSON-Zeichenfolge wie diese:

{"id": "1"}
Nach dem Login kopieren

wobei das „id“-Feld jetzt eine Zeichenfolge ist.

Wenn Sie versuchen, diese JSON-Zeichenfolge in die Go-Struktur zu entmarshalieren, wird der oben genannte Fehler auftreten.

Lösung

Um diese Situation zu bewältigen, können Sie die Option ,string in angeben Ihr JSON-Tag, wie unten gezeigt:

type Survey struct {
    Id   int64  `json:"id,string,omitempty"`
    Name   string `json:"name,omitempty"`
}
Nach dem Login kopieren

Dadurch kann das „id“-Feld als int64 entmarshallt werden, selbst wenn der JSON-Wert eine Zeichenfolge ist.

Hinweis

Es ist wichtig zu beachten, dass die Angabe von omitEmpty für mit Zeichenfolgen markierte Felder nur Auswirkungen auf den Marshalling-Prozess hat, nicht auf den Unmarshaling-Prozess. Das bedeutet, dass Sie einen leeren String nicht in ein int64-Feld entmarshalieren können, selbst wenn er mit ,string,omitempty getaggt ist.

Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich JSON-Strings in Int64-Go-Werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage