在json.Unmarshal之后接收零初始化对象
我似乎无法在Go中解析json文件。我试过很多教程,但我看不出我做错了什么。JSON看起来像这样在json.Unmarshal之后接收零初始化对象,json,go,unmarshalling,Json,Go,Unmarshalling,我似乎无法在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": 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)"}`))
}
我的主文件如下所示
{
"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`
}
昨天我对同一个问题给出了同样的答案:可能是重复的