我的服务器上有一个非常简单的JSON文件,只是
{
"first_name": "John",
"last_name": "Doe"
}
然后我写了一个golang脚本来打印出第一个名字:
package main
import (
"fmt"
"net/http"
"encoding/json"
)
type Person struct {
FirstName string `json: "first_name"`
LastName string `json: "last_name"`
}
func main() {
url := "http://myserver.com/test.json"
res, err := http.Get(url)
if err != nil {
fmt.Printf("%s", err)
}
defer res.Body.Close()
var person Person
dec := json.NewDecoder(res.Body).Decode(&person)
if dec != nil {
fmt.Printf("%s", dec)
}
fmt.Println(person.FirstName)
}
但如果我输入go run test.go
,它总是只是打印一个换行符。
我做错了什么?
答案 0 :(得分:2)
您的代码正在json中搜索FirstName
和LastName
个键。如果希望struct标记生效,则需要删除冒号和引号之间的空格。 json:"first_name"