「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Go で JSON アンマーシャリングのために UTF-8 文字列を []byte に変換するにはどうすればよいですか?

Go で JSON アンマーシャリングのために UTF-8 文字列を []byte に変換するにはどうすればよいですか?

2024 年 11 月 8 日に公開
ブラウズ:435

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

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)

このメソッドは文字列のコピーを回避し、大規模な入力の場合により効率的です。

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

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

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

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3