2013-11-04 21 views

risposta

11

Esistono diversi modi di serializzare i dati e Go offre molti pacchetti per questo. Pacchetti per alcuni dei modi più comuni di codifica:

encoding/gob
encoding/xml
encoding/json

encoding/gob maniglie mappe bene. L'esempio seguente mostra sia la codifica/decodifica di una mappa:

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

Il pacchetto goccia ti consente di serializzare mappe. Ho scritto un piccolo esempio http://play.golang.org/p/6dX5SMdVtr dimostrando entrambe le mappe di codifica e decodifica. Proprio come un avviso, il pacchetto gob non può codificare tutto, come i canali.

Modifica: Anche stringa e [] byte non sono gli stessi in Go.