UTF-8 文字列を []byte にアンマーシャリングする
JSON を使用する場合、アンマーシャリング関数には []byte 型の入力が必要です。ただし、データは UTF-8 文字列として保存できます。この記事では、アンマーシャリングを成功させるために UTF-8 文字列を []byte に変換する方法について説明します。
[]byte を使用した変換
Go 仕様による、単純なキャストを使用して文字列を []byte に変換できます:
<code class="go">s := "some text" b := []byte(s)</code>
ただし、この変換では文字列の内容のコピーが作成されるため、大きな文字列の場合は非効率的になる可能性があります。
効率的なアンマーシャルのための io.Reader の使用
別のアプローチは、文字列から作成された io.Reader を使用することです。
<code class="go">s := `{"somekey":"somevalue"}` reader := strings.NewReader(s) decoder := json.NewDecoder(reader) var result interface{} decoder.Decode(&result)</code>
この方法では、文字列のコピーを回避し、大きな入力の場合は、より効率的です。
さまざまなシナリオに関する考慮事項
要約すると、UTF-8 文字列を変換します。アンマーシャリングのために []byte に変換するには、直接キャストするか、大きな入力を効率的に処理するために io.Reader を使用します。選択はアプリケーションの特定の要件によって異なります。
以上がGo で JSON アンマーシャリングのために UTF-8 文字列を []byte に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。