Golang JSON-tags
Angenommen ich habe eine struct Foo
.
Foo struct {
Bar, Baz int
}
Und ich will Marschall dieses struct in json
etwa so:
{bar : 1, baz : 2}
Wie könnte ich erreichen, dass, ohne die Aufteilung meinem single-line multiple-name-Erklärung (Bar, Baz int
) in 2 getrennte Linien, die Verwendung von tags.
Dies funktioniert:
Foo struct { Bar int `json:"bar"` Baz int `json:"baz"` }
Aber ich würde gerne:
Foo struct { Bar, Baz int `json:???` }
Ist letzteres überhaupt möglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend der Spezifikation, Nein.
go hat eine strenge syntax gibt, die die eine Art und Weise, Dinge zu tun.
Gehen hat ein integriertes Paket encoding/json, die Ihnen helfen kann in dieser situation.
Hier ist die godocs für die Bibliothek http://golang.org/pkg/encoding/json/
Hier ist ein Beispiel, das ich aus der Bibliothek http://play.golang.org/p/YOhj2qKg-2
edit: Wie tarrsalla gesagt unter mir, gehen Sie lieber "ein Weg, Dinge zu tun," und es wäre besser für Sie auf lange Sicht, wenn Sie verwendet werden, dass ein "Weg"
strings.Replace(jsonString, "Bar:", "bar:", 1)
auf den resultierenden string. Ich werde zu aktualisieren meinem Beispiel mit, dass.ToLower
die ganze Sache wäre auch einfacher xD. Aber ich will nicht zu tun, entweder, gerade Krank zu tun-tags in der Struktur, um es sauber zu behalten.func ConvertToJSON() string
. Das ist ziemlich sauber, aber tags könnten noch besser werden. Alle bis zu Ihnen.