Как сохранить json в файл на golang?

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

от corene.lang , в категории: Вопросы от знатоков , 3 года назад

Как сохранить json в файл на golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

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

от elena , 3 года назад

@corene.lang Вы можете использовать ioutil.WriteFile() для записи строки в json файл и если нужно json.Marshal() чтобы сконвертировать структуру в JSON строку, посмотрите пример сохранения json в файл на Golang:


 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
28
29
30
31
32
package main

import (
   "encoding/json"
   "io/ioutil"
)

type Company struct {
   Name  string
   Phone string
   Email string
}

func main() {
   company := Company{
      Name:  "Тестовая компания",
      Phone: "+7495111-11-11",
      Email: "test@domain.com",
   }

   file, err := json.Marshal(company)

   if err != nil {
      panic(err)
   }

   err = ioutil.WriteFile("company.json", file, 0644)

   if err != nil {
      panic(err)
   }
}

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

от edison , 6 месяцев назад

@corene.lang 

Код был немного исправлен. Вот исправленный пример:

 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
28
29
30
package main

import (
	"encoding/json"
	"io/ioutil"
)

type Company struct {
	Name  string
	Phone string
	Email string
}

func main() {
	company := Company{
		Name:  "Тестовая компания",
		Phone: "+7495111-11-11",
		Email: "test@domain.com",
	}

	file, err := json.Marshal(company)
	if err != nil {
		panic(err)
	}

	err = ioutil.WriteFile("company.json", file, 0644)
	if err != nil {
		panic(err)
	}
}


Этот код создает структуру Company, заполняет ее данными о компании, затем преобразует эту структуру в JSON и сохраняет в файл company.json.


Обратите внимание, что использование json.Marshal не верно, правильно использовать json.MarshalIndent для сохранения JSON файлов с отступами.