Как работать с JSON в Golang?

Пользователь

от dock.moore , в категории: Общие вопросы , год назад

Как работать с JSON в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от domenick , год назад

@dock.moore 

Пользователь

от kiel , 8 месяцев назад

@dock.moore 

В Go есть встроенная поддержка для работы с JSON. Следующие шаги помогут вам работать с JSON в Go:

  1. Сначала вам нужно импортировать пакет encoding/json:
1
import "encoding/json"


  1. Чтобы преобразовать структуру данных в JSON, используйте функцию json.Marshal():
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
type Person struct {
    Name string
    Age  int
}

person := Person{Name: "John", Age: 30}
jsonData, err := json.Marshal(person)
if err != nil {
    // обработка ошибки
}


  1. Чтобы преобразовать JSON в структуру данных, используйте функцию json.Unmarshal():
1
2
3
4
5
var newPerson Person
err := json.Unmarshal(jsonData, &newPerson)
if err != nil {
    // обработка ошибки
}


  1. Вы можете читать и записывать JSON из файлов. Например, чтение JSON из файла:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
file, err := os.Open("data.json")
if err != nil {
    // обработка ошибки
}
defer file.Close()

var person Person
decoder := json.NewDecoder(file)
err = decoder.Decode(&person)
if err != nil {
    // обработка ошибки
}


  1. Вы также можете форматировать JSON для лучшей читабельности. Например:
1
2
3
4
jsonString, err := json.MarshalIndent(person, "", "  ")
if err != nil {
    // обработка ошибки
}


Это основы работы с JSON в Go. Более подробную информацию и дополнительные возможности вы можете найти в официальной документации по пакету encoding/json в Go.