猿问

json.Unmarshall 无法正常工作

我正在从 localhost 读取 json 文档并尝试将其转换为Test类型:


type Test struct {

    one string

    two string

    three string

}


res, err := http.Get("http://localhost/d/")

perror(err)

defer res.Body.Close()

body, err := ioutil.ReadAll(res.Body)

perror(err)

var data Test

err = json.Unmarshal(body, &data)

if err != nil {

    fmt.Printf("%T\n%s\n%#v\n",err, err, err)

    switch v := err.(type){

    case *json.SyntaxError:

        fmt.Println(string(body[v.Offset - 40:v.Offset]))

    }

}



fmt.Println("response:")

fmt.Println(string(body))

fmt.Println("type:")

fmt.Println(data)

但输出显示一个空对象:


response:

{

    "one" : "one thing",

    "two" : "two things",

    "three" : "3 things"


}

type:

{  }

我究竟做错了什么?


海绵宝宝撒
浏览 223回答 1
1回答

梵蒂冈之花

您必须导出结构字段,使它们以大写字母开头。
随时随地看视频慕课网APP

相关分类

Go
我要回答