Golang マップからバイトへ

王林
リリース: 2023-05-13 10:22:38
オリジナル
1167 人が閲覧しました

Golang 開発では、mapbyte 配列に変換する必要があることがよくあります (つまり、シリアル化)。これは、map をネットワーク リクエストに渡すか、データベースに保存するか、他のシステムとやり取りする必要があることが考えられます。この記事では、Golang で mapbyte 配列に変換する方法を紹介します。

JSON シリアル化の使用

Golang では、標準ライブラリ encoding/json によって提供される Marshal 関数を map # に使用できます。 ##byte 配列にシリアル化されます。 Marshal この関数は、interface{} タイプのデータを受け取り、mapbyte 配列に変換できます。

以下は簡単なサンプル コードです:

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    m := make(map[string]interface{})
    m["name"] = "Alice"
    m["age"] = 20
    m["gender"] = "female"

    // 序列化 map
    b, err := json.Marshal(m)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Println(string(b))
}
ログイン後にコピー

上記のコードは次の文字列を出力します:

{"age":20,"gender":"female","name":"Alice"}
ログイン後にコピー

Gob シリアル化の使用

JSON に加えて, Golang Gob 連載も提供されています。 Gob シリアル化は JSON とは異なり、Golang によって内部的に使用されるシリアル化形式です。より効率的ですが、それを理解できるのは Golang だけです。したがって、使用する際には注意が必要です。

以下は簡単な Gob シリアル化の例です:

package main

import (
    "bytes"
    "encoding/gob"
    "fmt"
)

func main() {
    var buf bytes.Buffer
    enc := gob.NewEncoder(&buf)

    m := make(map[string]interface{})
    m["name"] = "Alice"
    m["age"] = 20
    m["gender"] = "female"

    // 序列化 map
    if err := enc.Encode(m); err != nil {
        fmt.Println("Error:", err)
        return
    }

    b := buf.Bytes()
    fmt.Println(b)
}
ログイン後にコピー

これはシリアル化された

map を表すバイト配列を出力します。

概要

Golang では、

encoding/json または encoding/gob ライブラリを使用して map シーケンスを変換できます。 byte 配列に変換します。 JSON シリアル化を使用すると、map を読みやすい文字列にシリアル化できますが、Gob シリアル化では効率の面で利点が得られます。ニーズに応じて適切なシリアル化方法を選択してください。

以上がGolang マップからバイトへの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート