2013-11-04 10 views

答えて

11

データのシリアル化には複数の方法があり、Goにはこれに対応するパッケージが多数用意されています。エンコーディングの一般的な方法のいくつかのためのパッケージ:

encoding/gob
encoding/xml
encoding/json

encoding/gobハンドルが細かいマッピングします。以下の例では、マップのエンコーディング/デコーディングの両方を示しています

package main 

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

var m = map[string]int{"one":1, "two":2, "three":3} 

func main() { 
    b := new(bytes.Buffer) 

    e := gob.NewEncoder(b) 

    // Encoding the map 
    err := e.Encode(m) 
    if err != nil { 
     panic(err) 
    } 

    var decodedMap map[string]int 
    d := gob.NewDecoder(b) 

    // Decoding the serialized data 
    err = d.Decode(&decodedMap) 
    if err != nil { 
     panic(err) 
    } 

    // Ta da! It is a map! 
    fmt.Printf("%#v\n", decodedMap) 
} 

Playground

3

ゴブパッケージを使用すると、マップをシリアライズできるようになります。私は符号化と復号の両方のマップを示す小さな例http://play.golang.org/p/6dX5SMdVtrを書いた。ヘッドアップのように、ゴブパッケージはチャンネルなどのすべてをエンコードできません。

編集:また、文字列と[]バイトはGoで同じではありません。

関連する問題