UTF-8 文字列を []byte にアンマーシャリングする
JSON を使用する場合、アンマーシャリング関数には []byte 型の入力が必要です。ただし、データは UTF-8 文字列として保存できます。この記事では、アンマーシャリングを成功させるために UTF-8 文字列を []byte に変換する方法について説明します。[]byte(s)
を使用した変換[]byte(s)
Go 仕様に従って、単純なキャストを使用して文字列を []byte に変換できます:
s := "some text"
b := []byte(s)
ただし、この変換では文字列の内容のコピーが作成されるため、大きな文字列の場合は非効率になる可能性があります。
io.Reader を使用すると効率的になります。 Unmarshal
別のアプローチは、から作成された io.Reader を使用することです。文字列:
s := `{"somekey":"somevalue"}`
reader := strings.NewReader(s)
decoder := json.NewDecoder(reader)
var result interface{}
decoder.Decode(&result)
このメソッドは文字列のコピーを回避し、大規模な入力の場合により効率的です。
さまざまなシナリオに関する考慮事項
要約すると、アンマーシャリングのために UTF-8 文字列を []byte に変換するには、次のいずれかのダイレクト キャストが必要になります。または、大規模な入力を効率的に処理するために io.Reader を使用します。選択はアプリケーションの特定の要件によって異なります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3