ホームページ >バックエンド開発 >Golang >Go で JSON アンマーシャリングのために UTF-8 文字列を []byte に変換する方法

Go で JSON アンマーシャリングのために UTF-8 文字列を []byte に変換する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 10:08:02746ブラウズ

How to Convert UTF-8 Strings to []byte for JSON Unmarshalling in Go?

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 := `{&quot;somekey&quot;:&quot;somevalue&quot;}`
reader := strings.NewReader(s)
decoder := json.NewDecoder(reader)
var result interface{}
decoder.Decode(&result)</code>

この方法では、文字列のコピーを回避し、大きな入力の場合は、より効率的です。

さまざまなシナリオに関する考慮事項

  • 小さな JSON テキストの場合は、[]byte(s) を使用して []byte に直接変換します。
  • 大きな JSON テキストの場合、または io.Readers を使用する場合は、strings.NewReader と json.NewDecoder を使用すると効率が向上します。

要約すると、UTF-8 文字列を変換します。アンマーシャリングのために []byte に変換するには、直接キャストするか、大きな入力を効率的に処理するために io.Reader を使用します。選択はアプリケーションの特定の要件によって異なります。

以上がGo で JSON アンマーシャリングのために UTF-8 文字列を []byte に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。