簡體   English   中英

在json.Unmarshal之后接收零初始化的對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM