我有一个map[string]map[string]string
我希望能够转换为 JSON 并写入文件,并能够从文件中读回数据。
我已经能够使用以下内容成功写入文件:
func (l *Locker) Save(filename string) error {
file, err := os.Create(filename)
if err != nil {
return err
}
defer file.Close()
encoder := json.NewEncoder(file)
// l.data is of type map[string]map[string]string
return encoder.Encode(l.data)
}
我无法将 JSON 加载回地图。我尝试了以下方法:
func (l *Locker) Load(filename string) error {
file, err := os.Open(filename)
if err != nil {
return err
}
defer file.Close()
decoder := json.NewDecoder(file)
return decoder.Decode(l.data)
}
加载一个带有内容的 JSON 文件{"bar":{"hello":"world"},"foo":{"bar":"new","baz":"extra"}}
,在上面的内容之后l.data
就是map[]
. 如何成功将此 JSON 解码为l.data
?