我試圖在將用JSON進行編碼/解碼的結構中使用time.Time
結構。如果未設置time.Time
屬性(omitempty標記),則不應包含time.Time
屬性,因此爲了能夠這樣做,我將不得不使用指向time.Time
對象的指針。分配給接收器方法中的零指針
我已經定義了一個類型爲time.Time
結構,使我可以輕鬆地創建接收機功能格式化時間的JSON進行編碼和解碼等
在這裏看到的代碼:https://play.golang.org/p/e81xzA-dzz
所以在我的主結構(實際上將被編碼結構),我會做這樣的事情:
type EncodeThis struct {
Str string `json:"str,omitempty"`
Date *jWDate `json:"date,omitempty"`
}
的問題是,指針可以是零,試圖將值解碼的時候,所以如果你看一下我的代碼在日e去操場,你可以看到,我試圖(使用雙指針)設置接收器的地址,如果它的零。參見方法「Set」和「swap」。
但是,這似乎並沒有工作。該程序不會失敗或任何事情,但「EncodeThis」結構將不包含對這個新地址的引用。任何想法解決這個問題?
您的遊樂場不完整。請修復它到可編譯狀態。 – I159
問題是它的一千行代碼和很多依賴關係。問題在於Set方法,當接收器指針爲零時。我需要爲它分配內存,或者在Set-method中重新分配地址。但我不知道如何做到這一點。或者如果它真的可能。最壞的情況我需要在創建時爲它們創建內存,但是將它作爲指針是沒用的。 – Joachim
你可能想看看http://stackoverflow.com/questions/23695479/format-timestamp-in-outgoing-json-in-golang – Ravi