Как разобрать каждый элемент словаря HCL по golang?
Я попытался разобрать конфигурацию HCL с помощью golang
, но это не работает.
type cfg_dict struct {
name string `hcl:",key"`
type string `hcl:"type"`
}
type hcl_config struct {
config_items cfg_dict `hcl:"config"`
}
func main() {
hcl_example = `config "cfg1" {
type = "string"
}`
hcl_opts := &hcl_config{}
hcl_tree, err := hcl.Parse(hcl_example)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
if err := hcl.DecodeObject(&hcl_opts, hcl_tree); err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println(hcl_opts)
}
Когда я попытался запустить этот тестовый код после сборки, он показывает пустое значение.
&{[]}
Есть ли проблема, что я должен исправить?
1 ответ
Поля в структуре, которую вы пытаетесь демаршалировать из HCL, необходимо экспортировать. Для экспорта полей сделайте первый символ в имени поля заглавным.
type cfg_dict struct {
Name string `hcl:",key"`
Type string `hcl:"type"`
}
type hcl_config struct {
Config_items cfg_dict `hcl:"config"`
}