在 Go 中将 JSON 文件读取为 JSON 对象
尝试将 JSON 文件读入变量时,后续尝试循环遍历它并检索 JSON 对象值可能会导致有问题的结果。使用 Marshal 命令的初始尝试会产生数字输出,而随后尝试在结构中存储 JSON 值并使用 MarshalIndent 会产生字符串输出。
要成功,由 json.Unmarshal 填充的接口值必须成为一个指针。正确的做法如下:
plan, _ := ioutil.ReadFile(filename) var data interface{} err := json.Unmarshal(plan, &data)
初次尝试中观察到的错误“Unmarshal(nil)”表明文件读取存在问题。检查 ioutil.ReadFile 返回的错误至关重要。
此外,在 unmarshal 中使用空接口需要类型断言才能将底层值作为 Go 原始类型访问。一种更好的方法涉及定义与 json.Unmarshal 一起使用的具体结构。
以上是如何在Go中正确读取和解析JSON文件?的详细内容。更多信息请关注PHP中文网其他相关文章!