ホームページ  >  記事  >  バックエンド開発  >  Go JSON で []byte を文字列としてデコードするにはどうすればよいですか?

Go JSON で []byte を文字列としてデコードするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-05 22:53:02530ブラウズ

How to Decode []byte as Strings in Go JSON?

Go で []byte を文字列としてデコードする

Go では、[]byte スライスを JSON 文字列としてマーシャリングするときに変換が実行されましたjson.Marshal() メソッドにより、バイト スライスが Base64 でエンコードされた文字列としてエンコードされます。ドキュメントにあるように:

Array and slice values encode as JSON arrays, except that []byte encodes as a base64-encoded string, and a nil slice encodes as the null JSON object.

この変換は、JSON 内の生のバイトのネイティブ表現の欠如を補うために実行されます。 Base64 エンコーディングにより、バイト スライスが有効な JSON 文字列として転送されることが保証されます。

エンコーディングの克服

[] の元のコンテンツを含む JSON 文字列を生成するにはbyte フィールドの場合、マーシャリングの前にデータを文字列に変換する必要があります。これは、string() 関数を使用して実現できます。

<code class="go">    helloStr := "Hello"
    helloSlc := []byte(helloStr)

    obj := Msg{string(helloSlc)}
    json, _ := json.Marshal(obj)
    fmt.Println(string(json))</code>

これにより、目的の出力が生成されます。

{"Content":"Hello"}

このアプローチにより、JSON 文字列に文字列の元のコンテンツが含まれることが保証されます。 、base64 でエンコードされた表現ではなく。

以上がGo JSON で []byte を文字列としてデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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