私は、このようなjsonオブジェクトの文字列を複数の型にマッピングしますか?
{
"a": "apple",
"b": 2
}
としてJSONオブジェクトに変換することができますマップを作成したいがgolangはマップがタイプで宣言するように指定し、私はマップ[文字列]文字列を持っているか、[文字列]をマッピングすることができますint。上記のようなjsonオブジェクトを作成するにはどうすればよいですか?
注:実行時またはjsonオブジェクトを作成する必要があるときまで、必要なデータおよび/またはタイプはわかりません。したがって、私はちょうどあなたが常に任意の型を格納するのにinterface{}
を使用することができます
type Foo struct {
A string `json:"a"`
B int `json:"b"`
}
いずれかの値も配列にできますか? 'foo'、2、 "bar"、false、{"baz": "boo"、 "boo"、 "boo" "bat"、 "moreFoo":7}]} ' –
@BrantleyBeairdはい!空のインタフェース( 'interface {}')は、配列を含むあらゆる型を保持します。配列には任意の型が含まれているので、 '[] interface {}'となるでしょう。 – ANisus
インタフェース型( 'interface {}'はメソッドを持たない)は基本型を保持できますが、 (付加的なタイプ情報は、その値がインタフェース値に変換される瞬間に記憶される)およびいくつかの処理の点で、あなたが動的な言葉から慣れることができる柔軟性のいくつかを支払うための合理的な価格は、そうする理由がないときに使用するものではありません。インターフェースタイプは、他のインターフェースタイプを除き、基本タイプを保持することができます。これには、int、float64などのプレーンタイプだけでなく、配列、マップ、チャンネルなども含まれます。 – thomasrutter