"顶级值后无效字符'1'"解组JSON

Pan*_*aj 6 json go

我正在使用json在程序调用之间将数据存储在磁盘上,程序运行正常一段时间,但之后它在json解码中显示错误,"顶级值后无效字符'1'".

有谁能建议解决这个问题?

jim*_*imt 5

不要手动打开文件,而应考虑使用一些内置的IO功能.

import (
  "io/ioutil"
  "encoding/json"
)
...
func Save(myobj SomeType, filename string) (err error) {
    var data []byte
    if data, err = json.Marshal(myobj); err != nil {
        return
    }
    return ioutil.WriteFile(filename, data)
}
Run Code Online (Sandbox Code Playgroud)

加载你使用ioutil.ReadFile和的json数据也是如此json.Unmarshal.


cth*_*m06 3

当您将数据写入磁盘时,您是否确保传递os.O_TRUNC(或以其他方式截断文件)打开标志?如果没有,程序将正常工作,直到您编写一个比上一个更小的对象。但是如果看不到代码就很难调试它。