JSON パッケージを使用した Go での JSON 配列の解析
json パッケージを使用して Go で JSON 配列を表す文字列を解析しようとすると、一部の開発者は、Unmarshal 関数でエラーが発生する可能性があります。この記事では、解決策を提供し、代替アプローチを紹介します。
元のコード:
type JsonType struct { Array []string } func main() { dataJson := `["1","2","3"]` arr := JsonType{} unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array) log.Printf("Unmarshaled: %v", unmarshaled) }
問題:
Unmarshal によって返されたエラー予想される配列の代わりに出力されます。これを解決するには、Unmarshal 関数を次のように変更する必要があります:
err := json.Unmarshal([]byte(dataJson), &arr)
Unmarshal の戻り値はエラーであり、適切に処理する必要があります。
簡略化されたアプローチ:
コードを簡素化するために、JsonType 構造体を削除し、スライスを使用できます。直接:
package main import ( "encoding/json" "log" ) func main() { dataJson := `["1","2","3"]` var arr []string _ = json.Unmarshal([]byte(dataJson), &arr) log.Printf("Unmarshaled: %v", arr) }
ポインターを使用する利点 (オプション):
Unmarshal で変数にポインターを渡すと、特に処理においてメモリの最適化と潜在的なパフォーマンスの向上が可能になります。同じ変数が再利用されるコンテキスト
結論:
Unmarshal 関数を変更し、スライスを直接使用することで、開発者は json パッケージを使用して Go で JSON 配列を効果的に解析できます。変数を Unmarshal に渡すときにポインターを使用すると、特に処理シナリオでメモリ使用量をさらに最適化できます。
以上が`json` パッケージを使用して Go で JSON 配列を正しく解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。