Go YAML 구조체 없이 맵에 Unmarshal

1 개요[ | ]

Go YAML 구조체 없이 맵에 Unmarshal
Go YAML 구조체 없이 맵으로 Unmarshal
package main

import (
	"fmt"

	"gopkg.in/yaml.v2"
)

const yamlString = `
clouds:
  devstack:
    auth:
      auth_url: http://192.168.122.10:35357/
      project_name: demo
      username: demo
      password: 0penstack
`

func main() {
	m := make(map[string]interface{})
	err := yaml.Unmarshal([]byte(yamlString), m)
	if err != nil {
		panic(err)
	}
	fmt.Printf("%#v\n", m)
}
package main

import (
	"fmt"

	"gopkg.in/yaml.v2"
)

const yamlString = `
clouds:
  devstack:
    auth:
      auth_url: http://192.168.122.10:35357/
      project_name: demo
      username: demo
      password: 0penstack
`

func main() {
	m := make(map[string]map[string]interface{})
	err := yaml.Unmarshal([]byte(yamlString), m)
	if err != nil {
		panic(err)
	}
	if _, ok := m["clouds"]; !ok {
		panic("no clouds")
	}
	var cloudName string
	for k := range m["clouds"] {
		cloudName = k
		break
	}
	fmt.Println(cloudName) // devstack
}

2 같이 보기[ | ]

3 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}