インターフェイス変換エラー: 無効なマッピング
インターフェイスをマップに変換しようとすると、JSON 解析中にエラーが発生し、次のメッセージが表示されます「インターフェイス変換: インターフェイス {} は []インターフェイス {} であり、マップ[文字列]インターフェイス {} ではありません。」
説明
エラーは、次の間の不一致を示しています。データ型。提供されたコード スニペットでは、次の行はオーガニック結果リストから結果を抽出します。
result := fmt.Sprintf("%v", response["organic_results"].(map[string]interface{})["title"])
response["organic_results"] はマップであると想定されており、その値は map[string としてキャストされる必要があります。 ]インターフェース{}を使用して、特定のタイトル値にアクセスします。ただし、response["organic_results"] の実際のデータ型は、マップではなくインターフェース ([]interface{}) のスライスです。
Solution
エラーを解決するには、コードをそれに応じて修正する必要があります。
for _, item := range response["organic_results"].([]interface{}) { fmt.Sprintf("%v", item.(map[string]interface{})["title"]) }
ここで、ループは []interface{} スライス内の各項目を反復処理し、各項目は map[string]interface{ としてキャストされます。 } タイトルの値を抽出します。
以上がインターフェイスをマップに変換すると、「インターフェイス変換: インターフェイス {} は []インターフェイス {} であり、マップ[文字列]インターフェイス {} ではありません」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。