ホームページ  >  記事  >  バックエンド開発  >  Go で JSON アンマーシャリングのために UTF8 文字列をバイト配列に効率的に変換するにはどうすればよいですか?

Go で JSON アンマーシャリングのために UTF8 文字列をバイト配列に効率的に変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-30 05:29:27698ブラウズ

How to Efficiently Convert UTF8 Strings to Byte Arrays for JSON Unmarshaling in Go?

JSON アンマーシャリングのために UTF8 文字列をバイト配列に変換する

Unmarshal 関数を使用して JSON 文字列をアンマーシャリングする場合、バイト配列を表すパラメーターは次のとおりです。必須。この記事では、UTF8 文字列を互換性のあるバイト配列に変換する効率的な方法を説明します。

変換プロセス

Go 言語では、次のように文字列からバイト配列に直接変換できます。言語仕様で指定されています。次のコードは、この変換を示しています。

<code class="go">s := "some text"
b := []byte(s) // b is of type []byte</code>

ただし、この変換はコピー操作が実行されるため、大きな文字列の場合は非効率的になる可能性があります。別のアプローチは、io.Reader を利用してコピーのオーバーヘッドを回避することです。これには、strings.NewReader() を使用して io.Reader を作成し、それを json.NewDecoder() に渡すことが含まれます。

<code class="go">s := `{&quot;somekey&quot;:&quot;somevalue&quot;}`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&amp;result)
fmt.Println(result, err)</code>

このメソッドにより、プログラムは入力のコピーを作成せずに JSON データにアクセスできます。 string.

パフォーマンスに関する考慮事項

小さな JSON テキストの場合、io.Reader の作成と json.NewDecoder() の使用に関連するオーバーヘッドを考慮する必要があります。このような場合、[]byte(s) による直接変換は同等のパフォーマンスを提供するため、依然として実行可能なオプションです。

結論

サイズとソースによって異なります。 JSON 入力では、さまざまな方法を利用して UTF8 文字列をアンマーシャリング用のバイト配列に変換できます。直接変換または io.Reader アプローチを活用することで、開発者は Go アプリケーションで JSON データを効果的に処理できます。

以上がGo で JSON アンマーシャリングのために UTF8 文字列をバイト配列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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