[英]Receiving zero-initialized object after json.Unmarshal
我似乎無法在Go中解析json文件。 我已經嘗試了很多教程,但是看不到我做錯了什么。 JSON看起來像這樣。
{
"latitude": 34.4048358,
"longitude": -119.5313565,
"dateTime": "Thu Jun 26 2014 08:36:42 GMT-0700 (PDT)"
}
我的主文件看起來像這樣。
package main
import (
"encoding/json"
"fmt"
)
type Position struct {
latitude float64 `json:latitude`
longitude float64 `json:logitude`
dateTime string `json:dateTime`
}
func jsonToPosition(jsonData []byte) {
position := &Position{}
if err := json.Unmarshal(jsonData, position); err != nil {
fmt.Println(err)
}
fmt.Println(position)
}
func main() {
jsonToPosition([]byte(`{"latitude":34.4048358,"longitude":-119.5313565,"dateTime":"Thu Jun 26 2014 08:36:42 GMT-0700 (PDT)"}`))
}
我沒有收到任何錯誤。 我做fmt.Println(position)
時得到&{0 0 }
。
這是一個常見的錯誤:您沒有在Position
結構中導出值,因此json
包無法使用它。 在變量名中使用大寫字母可以:
type Position struct {
Latitude float64 `json:latitude`
Longitude float64 `json:logitude`
DateTime string `json:dateTime`
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.