2017-11-25 11 views
-1

現在、データベースjsonオブジェクトを文字列として格納しています。私はの構造を知らないJsonデータを含む文字列をGolangのMapに渡す

'{"Name":["zero"],"Age":"10"}' 

Mymap["Name"] 
Mymap["Age"] 
.. 

のは、私の文字列は何かのようになるだろうと言ってみましょう:私は、任意のフィールドに相談できるようにマップにそれらを渡したいですデータであるため、Jsonは必要に応じて多くのフィールドを持つことができ、多くのレベルの入れ子構造を持つことができます(少なくとも最初のレベルを取得することについてはさらに心配です)。

答えて

3

jsonオブジェクトを扱う場合は、それを非整列化する型としてインタフェースのマップを使用します。

map[string]interface{} 

encoding/jsonパッケージがうまく、それにJSONオブジェクトを非整列化、ネストされたかではないでしょう。

これは非常に柔軟性があり、明らかな欠点があります。マップの値の型は不明です。これらのマップに有用なことを行うには、型アサーションまたは型切り替えを使用する必要があります。

v, ok := m["key"].(Type) 

https://play.golang.org/p/wM0gkU1g5G

+1

さて、あなたはそこに私を得ました;)。私は答えを修正します。 – mkopriva

+1

@zerkmsそれを指摘して自分自身を正すことを許してくれてありがとう。 – mkopriva

関連する問題