time.Time
構造体をJSONでエンコード/デコードされる構造体に使用しようとしています。 time.Time
属性が設定されていない場合(omitemptyタグ)は含まれないようにする必要があります。そのためにはtime.Time
オブジェクトへのポインタを使用する必要があります。受信側メソッドでnilポインタに割り当て
私は簡単にレシーバ関数を作成することができますので、私はtime.Time
構造の型を定義したJSONをエンコードされた時刻をフォーマットし、デコードなど
ここにコードを参照してください:私のメインの中のSO https://play.golang.org/p/e81xzA-dzz
を構造(実際にエンコードされる構造)私はこのような何かを行います。
type EncodeThis struct {
Str string `json:"str,omitempty"`
Date *jWDate `json:"date,omitempty"`
}
問題は値を解読しようとすると、ポインタは、ゼロであってもよいことであるので、あなたは目で自分のコードを見れば私が(2重ポインタを使って)受信者のアドレスをnilに設定しようとしているのを見ることができます。メソッド "Set"と "swap"を参照してください。
しかし、これはうまくいかないようです。プログラムは失敗しないか、何もしませんが、 "EncodeThis"構造体にはこの新しいアドレスへの参照が含まれません。これを修正するためのアイデアはありますか?
プレイグラウンドが不完全です。コンパイル可能な状態に修正してください。 – I159
問題は、その1000行のコードと多くの依存関係です。この問題は、受信側ポインタがnilの場合のSetメソッドにあります。私はそれにメモリを割り当てるか、Setメソッド内でアドレスを再割り当てする必要があります。しかし、私はこれを行う方法を知らない。または、本当に可能ならば。最悪の場合、私は作成時にそれらにメモリを作成する必要がありますが、それをポインタとして持つことは無意味です。 – Joachim
http://stackoverflow.com/questions/23695479/format-timestamp-in-outgoing-json-in-golang – Ravi