1.golang 的 map 在 yaml 中应该配置成如下:
testMap: {"aaa":true,"bbb":true,"ccc"}
2. 空的字符串反序列 json 会失败。
具体代码如下:
package main
import (
"encoding/json"
"fmt"
"gopkg.in/yaml.v2"
"io/ioutil"
)
type testYAML struct {TestMap map[string]bool `yaml:"testMap"`
}
type testJSON struct {
TestName string `json:"name"`
TestAge int `json:"age"`
}
func main() {data := &testYAML{}
content, err := ioutil.ReadFile("./test.yaml")
if err != nil {fmt.Printf("ReadFile_Err: %v\n", err)
return
}
if err := yaml.Unmarshal(content, data); err != nil {fmt.Println("YAML_Unmarshal_ERR:", err)
}
fmt.Println("YAML:", *data)
testJSONFunc()}
func testJSONFunc() {testData := testJSON{}
// 空的字符串 json 反序列化会失败
if err := json.Unmarshal([]byte(""), &testData); err != nil {fmt.Println("JSON_Unmarshal_Err:", err)
} else {fmt.Println("JSON:", testData)
}
}