import "encoding/json"
Создадим древовидный JSON файл.
{
"applications": [
{
"name": "app1",
"db": {
"host": "db2",
"user": "root",
"pass": "",
"dbname": "test"
}
},
{
"name": "app2",
"db": {
"host": "db2",
"user": "root",
"pass": "",
"dbname": "test"
}
}
]
}
Опишем структуру. Обращу внимание, что имена свойств нужно писать с большой буквы.
type Config struct {
Applications []Application
}
type Application struct {
Name string
Db Db
}
type Db struct {
Host string
User string
Pass string
Dbname string
}
А теперь экспортируем JSON в Го.
file, _ := os.Open("PATHTOYOURFILE")
decoder := json.NewDecoder(file)
config := new(Config)
err := decoder.Decode(&config)
if err != nil {
// handle it
}
В переменной config у нас будут наши данные. Как теперь получить что-нибудь?
config.Applications[0].Db.Host
Не забываем подключить os package, чтобы прочитать файл, вы можете обойтись без него, если читаете JSON не из файла.