[[dev:golang:json-encoder]]

Encode / Decode Json

package main
 
import (
	"bytes"
	"encoding/json"
	"fmt"
	"net/http"
	"os"
)
 
type Test struct {
	A string `json:"a,omitempty"`
	B string `json:"b,omitempty"`
}
 
func (t Test) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	json.NewEncoder(w).Encode(t)
}
 
func main() {
 
	sa := Test{
		A: "ahh",
		B: "beeh",
	}
 
	json.NewEncoder(os.Stdout).Encode(sa)
 
	b := bytes.NewBufferString(`{"a":"eins","b":"zwei"}`)
 
	sb := Test{}
 
	json.NewDecoder(b).Decode(&sb)
 
	fmt.Fprintf(os.Stdout, "A: %s B: %s", sb.A, sb.B)
 
	// Test implements Handler ServeHTTP
 
	m := http.NewServeMux()
	m.Handle("/", sb)
	http.ListenAndServe(":8888", m)
 
}
$ go run *.go
{"a":"ahh","b":"beeh"}
A: eins B: zwei
 
# test webserver
 
$ curl http://localhost:8888/
{"a":"eins","b":"zwei"}
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
  • dev/golang/json-encoder.txt
  • Zuletzt geändert: 2018/02/17 08:11
  • von haiko