我收到一个错误:

json.Unmarshal undefined (type interface {} has no field or method Unmarshal)

正在try 将json字节切片转换为泛型接口{}类型.我正在阅读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)

}

推荐答案

您已经定义了一个局部变量json,它屏蔽了引用JSON模块的全局符号json.重命名局部变量应允许代码正常工作.

Go相关问答推荐

如果添加构建标签,gopls将停止工作

Golang Viper:如果第一个字段不存在,如何从另一个字段获取值

Golang应用程序:所请求的资源上不存在HTTP-Control-Allow-Origin标头

将类型定义为泛型类型实例化

在Mac中使用uname获取处理器体系 struct 时,在为AMD64构建Go二进制时出现错误结果

如何执行asn 1 marshal/unmarshal和omit字段?

如果第一次匹配条件,如何跳过切片中的值

运行 Docker 容器 - X11 无法打开显示:0

Golang telegram 机器人

在VSCode中如何使用特定的文件名提供编译命令

Golang 发送Post请求出现400错误

如何将验证器标记添加到嵌套字段

是否可以在 hyperledger-chaincode 中使用 gRPC?如果可以,我如何避免在测试网络上调用时出错?

尽管存在 WaitGroup,Goroutines 似乎被打断了

我在 go 中制作的递归函数有什么问题?

如何在自定义验证函数中获取 struct 名称

将 []float64 像素切片转换为图像

Go 中 SDL Surface 的 OpenGL 纹理

从 map 返回空数组而不是空字符串数组

Golang 查询扫描未将查询正确扫描到 struct 中