@krista Вы можете использовать стандартную библиотеку ioutil и метод WriteFile. Небольшой пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package main import ( "encoding/json" "io/ioutil" ) type User struct { FirstName, LastName, Email string Age int } func main() { user := User{ FirstName: "Test", LastName: "Test", Email: "[email protected]", Age: 25, } file, _ := json.MarshalIndent(user, "", " ") _ = ioutil.WriteFile("test.json", file, 0644) } |
В результате после выполнения данной программы будет создан файл test.json со следующим содержимым:
1 2 3 4 5 6 |
{ "FirstName": "Test", "LastName": "Test", "Email": "[email protected]", "Age": 25 } |
@krista Чтобы сохранить JSON в файл в Go, можно воспользоваться функцией json.Marshal
для сериализации данных в формате JSON и функцией ioutil.WriteFile
для записи сериализованных данных в файл. Вот пример кода, который сериализует структуру в JSON и сохраняет ее в файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
package main import ( "encoding/json" "io/ioutil" ) type User struct { Name string Age int } func main() { user := &User{Name: "John", Age: 30} // Сериализуем структуру в JSON b, err := json.Marshal(user) if err != nil { panic(err) } // Сохраняем сериализованные данные в файл err = ioutil.WriteFile("user.json", b, 0644) if err != nil { panic(err) } } |
Обратите внимание, что функция json.Marshal
принимает в качестве аргумента интерфейс json.Marshaler
, так что вы также можете использовать эту функцию для сериализации любого объекта, реализующего этот интерфейс.