Dunaevlad
@Dunaevlad

Как добавить запись в JSON файл?

Написал код, но он не добавляет запись, а просто её перезаписывает

func WriteJson(d structs.Bassketball) {
	f, err := os.OpenFile("basketball.json", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer f.Close()

	file, _ := json.Marshal(d)
	_ = ioutil.WriteFile("basketball.json", file, 0644)
}
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
Вы правильно открываете файл, а потом используете WriteFile, вместо того, чтобы писать в открытый дескриптор файла.
Правильно будет так:
func WriteJson(d structs.Bassketball) error {
	f, err := os.OpenFile("basketball.json", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
	if err != nil {
		return err
	}
	defer f.Close()

	rawJSON, _ := json.Marshal(d)
	_, err = f.Write(rawJSON)
	if err != nil {
		return err
	}

	return nil
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы