ホームページ > バックエンド開発 > Golang > Go で JSON ファイルをオブジェクトとして読み取るにはどうすればよいですか?

Go で JSON ファイルをオブジェクトとして読み取るにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-15 00:57:02
オリジナル
361 人が閲覧しました

How Do You Read JSON Files as Objects in Go?

Go で JSON ファイルをオブジェクトとして読み取る

Go では、JSON ファイルを読み取り、オブジェクトとして解析しようとすると問題が発生することがあります。 JSON オブジェクト。

失敗しました試行

JSON ファイルをオブジェクトとして読み取る試みの失敗例には次のものがあります:

  • 試行 1:
plan, _ := ioutil.ReadFile(filename) // filename is the JSON file to read
var data interface{}
err := json.Unmarshal(plan, data)
ログイン後にコピー

これにより、「json:」というエラーが発生します。 Unmarshal(nil)".

  • 試行 2:
generatePlan, _ := json.MarshalIndent(plan, "", " ") // plan is a pointer to a struct
ログイン後にコピー

これは文字列出力を生成しますが、それを文字列にキャストすると、 JSONとしてループスルーすることは不可能object.

解決策

この問題を解決する鍵は、json.Unmarshal が指す値にあります。ポインタである必要があります。

plan, _ := ioutil.ReadFile(filename)
var data interface{}
err := json.Unmarshal(plan, &data)
ログイン後にコピー

型アサーション

アンマーシャルで空のインターフェイスを使用する場合、ネイティブ Go として基になる値を取得するには型アサーションを使用する必要があります。タイプ:

bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null
ログイン後にコピー

ベスト実践

Unmarshal を使用して JSON データを設定するには、具体的な構造を使用することを強くお勧めします。これにより、より明確になり、型アサーションの必要性が回避されます。

以上がGo で JSON ファイルをオブジェクトとして読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート