Если вам сложно понять, как 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 Группы 💬

Если этот пост был полезен, пожалуйста, нажмите несколько раз кнопку хлопка 👏 ниже, чтобы выразить поддержку автору! ⬇