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)
   }
}

simamengde
4 声望1 粉丝

世上无难事,只怕有心人!