@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, так что вы также можете использовать эту функцию для сериализации любого объекта, реализующего этот интерфейс.