JSON解析错误

huangapple go评论103阅读模式
英文:

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.

huangapple
  • 本文由 发表于 2013年3月28日 23:42:22
  • 转载请务必保留本文链接:https://go.coder-hub.com/15686151.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定