英文:
json Unmarshal error
问题
我遇到了一个错误:
json.Unmarshal未定义(类型interface {}没有字段或方法Unmarshal)
尝试将一个json字节切片转换为通用的interface{}类型。我正在阅读encoding/json
的文档,他们给出了一个示例,显示这是有效的。怎么回事?
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
func main() {
var json interface{}
data, _ := ioutil.ReadFile("testMusic.json")
json.Unmarshal(data, &json)
m := json.(map[string]interface{})
fmt.Printf("%+v", m)
}
英文:
I'm getting an error of:
json.Unmarshal undefined (type interface {} has no field or method Unmarshal)
trying to convert a json byte slice into the generic interface{} type. I'm reading the docs for encoding/json
and they give an example that shows this is valid. What gives?
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
func main() {
var json interface{}
data, _ := ioutil.ReadFile("testMusic.json")
json.Unmarshal(data, &json)
m := json.(map[string]interface{})
fmt.Printf("%+v", m)
}
答案1
得分: 45
你定义了一个局部变量json
,它遮蔽了全局符号json
,该符号指向JSON模块。重命名你的局部变量应该可以让你的代码正常工作。
英文:
You've defined a local variable json
that masks the global symbol json
referring to the JSON module. Renaming your local variable should allow your code to work.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论