1 回答

TA貢獻1744條經驗 獲得超4個贊
您可以執行與此處描述的自定義 JSON Unmarshal 方法非常相似的操作:
假設 JSON 在您的情況下包含一個字符串,這將如下所示:
package main
import (
? ? "encoding/json"
? ? "fmt"
? ? "os"
? ? "strconv"
? ? "time"
)
const input = `{"time": "946684799"}`
type Delivery struct {
? ? Time time.Time `json:"time"`
}
func (d *Delivery) UnmarshalJSON(data []byte) error {
? ? type Alias Delivery
? ? aux := &struct {
? ? ? ? Time string `json:"time"`
? ? ? ? *Alias
? ? }{
? ? ? ? Alias: (*Alias)(d),
? ? }
? ? if err := json.Unmarshal(data, &aux); err != nil {
? ? ? ? return err
? ? }
? ? i, err := strconv.ParseInt(aux.Time, 10, 64)
? ? if err != nil {
? ? ? ? return err
? ? }
? ? d.Time = time.Unix(i, 0)
? ? return nil
}
func main() {
? ? var delivery Delivery
? ? err := json.Unmarshal([]byte(input), &delivery)
? ? if err != nil {
? ? ? ? fmt.Println(err.Error())
? ? ? ? os.Exit(1)
? ? }
? ? fmt.Println(delivery.Time)
}
https://play.golang.org/p/mdOmUO2EDIR
- 1 回答
- 0 關注
- 138 瀏覽
添加回答
舉報