Если вам сложно понять, как GoLang читает JSON, вам понадобятся эти советы, чтобы быстро ориентироваться и работать продуктивно. Вот несколько советов, которые можно использовать при работе с JSON в языке программирования Golang.
Функция UnMarshal JSON-to-Go в Go?
Data := make(map[string]interface{}) var data = ` { "array": [ 1, 2, 3 ], "boolean": true, "null": null, "number": 123, "object": { "a": "b", "c": "d", "e": "f" }, "string": "Hello World" }` if err := json.Unmarshal([]byte(data), &Data); err != nil { panic(err) }
Вы сможете распечатать эту структуру GoLang (Go), используя следующий код ниже.
fmt.Printf("%s", jsonMap)
Это напечатает GoStruct
map[array:[%!s(float64=1) %!s(float64=2) %!s(float64=3)] boolean:%!s(bool=true) null:<nil> number:%!s(float64=123) object:map[a:b c:d e:f] string:Hello World]output: boolean : true
Если вы хотите печатать вместо формата JSON, а не в формате Go Object Struct.
Функция маршала перехода к JSON в Go?
Go имеет свою собственную систему типов, и эти структуры необходимы для безопасного синтаксического анализа JSON.
jsonMapAsStringFormat, err := json.Marshal(jsonMap) if err != nil { fmt.Println(err) }
Вы сможете распечатать JSON, используя следующий код ниже.
fmt.Printf("%s", jsonMapAsStringFormat)
JSON-to-Go-Structs в Go?
Начните с определения ваших данных как структуры GoLang.
Обязательно назовите свой Type на Golang с заглавной буквы, чтобы экспортировать структуру как объект.
Ниже приведен пример объекта JSON, ранее написанного как структура GoLang.
type CustomData struct { Array []int `json:"array"` Boolean bool `json:"boolean"` Null interface{} `json:"null"` Number int `json:"number"` Object struct { A string `json:"a"` C string `json:"c"` E string `json:"e"` } `json:"object"` String string `json:"string"` }
В этом примере мы назовем структуру «CustomData», а переменную - «custom». Затем определите новую переменную в качестве фрагмента для вашей структуры GoLang, чтобы демаршалировать правильные типы.
var custom []CustomData
Давайте удалим маршалинг среза на основе Go Struct CustomData. Это позволит проанализировать файл JSON безопасным для типов способом.
if err := json.Unmarshal([]byte(custom), &CustomData); err != nil { panic(err) }
Теперь используйте переменную (немаршалированную версию) в своей программе, как обычно.
fmt.Printf("%s", custom)
или распечатайте версию Go Struct.
map[array:[%!s(float64=1) %!s(float64=2) %!s(float64=3)] boolean:%!s(bool=true) null:<nil> number:%!s(float64=123) object:map[a:b c:d e:f] string:Hello World]output: boolean : true
или распечатайте версию JSON, следуя приведенному выше примеру Go-to-JSON Marshal.
Если ни один из приведенных выше советов не помог вам, попробуйте инструмент, доступный на Github, чтобы получить преимущество перед преобразованием JSON в Go Structs. Это поможет вам работать более продуктивно.
Удачного кодирования !!
👋 Присоединяйтесь к FAUN сегодня и получайте похожие истории каждую неделю на свой почтовый ящик! ️ Получите еженедельную дозу обязательных к прочтению технических статей, новостей и руководств.
Подписывайтесь на нас в Twitter 🐦 и Facebook 👥 и Instagram 📷 и присоединяйтесь к нашим Facebook и Linkedin Группы 💬