エンコードされていないフィールドがencoding/jsonに含まれていない技術的な理由はありますか?そうでなければ、それは恣意的な決定ですが、アンカバーされているにもかかわらず、追加のバックドアオプション( '+')を含めることができますか?JSONと非公開フィールドの処理
この機能を使用するためにエクスポートするクライアントコードを要求することは、特に小文字がカプセル化を提供している場合、またはマーシャル構造体の決定がデザインのものよりも遅れている場合には不幸です。
どのように人々はこれに対処していますか?すべてをエクスポートするだけですか?
また、フィールド名をエクスポートしても、推薦されたイディオムに従うことが困難になります。私は、構造体XがフィールドYを持っている場合、あなたはアクセサメソッドY()を持つことができないと思う。 Yへのインターフェイスアクセスを提供したい場合は、getterの新しい名前をつけなければならず、何かを慣れないで入手してください。http://golang.org/doc/effective_go.html#Getters
記録のために、私は "json.Unmarshal(b、&d.jsonData)"を使用してUnmarshallする必要がありました。私は間違ったことをしたのか、それとも期待されたのでしょうか? – Derek
@Derek、ありがとう、私は私の答えを更新しました。私が言ったように、コードはテストされていませんでした。私は 'UnmarshalJSON()'メソッドでreturn文も忘れてしまったようです。私もこれを修正しました。 –
私はショーに少し遅れていますが、上記の作品は、フィールド1とフィールド2 _are_エクスポートされている間。そのパッケージの外にあるJsonData(大文字J付き)のField1とField2を読み書きすることができます。したがって、これは理論的にはクールですが、実際にはタイプとフィールドの両方をエクスポートする以外に何もしません。 – davidjosepha