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

Barbara Streisand
リリース: 2024-11-01 10:08:02
オリジナル
683 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!