私はインターフェイス{}を返す関数を持っています。構造体のフィールドを「ハードコーディング」せずに、これをJSON配列にシリアル化するにはどうすればよいですか。 私はhttps://github.com/jmoiron/jsonqを使用してインターフェイスを返します。JSON配列マーシャリング
json.Unmarshal(resp.Bytes(), &response)
data := map[string]interface{}{}
dec := json.NewDecoder(strings.NewReader(resp.String()))
dec.Decode(&data)
jq := jsonq.NewQuery(data)
results, err := jq.Array("results")
if err != nil {
log.Fatalln("Unable to get results: ", err)
}
if len(results) == 0 {
return nil
}
return results // this is returning an interface{}
を:私は、使用してそれを反復することができました[]インターフェース{}
:
返さ:私はで見つけました:JSONストリームをデコードして、データ構造をJSONストリームにシリアル化する(つまり、エンコードする)方法を尋ねます。あなたは詳細を教えていただけますか? – kostix
入手したデータがわからない場合は、データで何をしたいですか?最終的には、サークルに入っているのは、ある点では、使用するためにどのようなデータが必要かを知る必要があるからです。そうでない場合(ちょうどそのようなデータをある種のdb、fileなどに書きたいのと同じように)、最初に非整列化する必要はありません。 – TehSphinX
@kostix私は制御しない外部APIからフェッチしています。私に与えられたすべてのデータを保存するのではなく、JSON応答のサブセクションのみを保存したいと思います。私はこれをMongoDBやどこかに保存するつもりですが、今は読める形式で印刷しようとしていました。本当に新しいですので、この質問がばかげている場合はお詫び申し上げます。 –