JSON Encode dan Decode Menggunakan Go Lang

Berbeda dengan JSON marshal dan unmarshal, JSON encode dan decode dilakukan secara on the fly.

Berikut snipet sederhana yang berisi web server yang akan melakukan fungsi JSON encode dan decode.

package main

import (
	"encoding/json"
	"log"
	"net/http"
)

type person struct {
	First string
}

func main() {
	http.HandleFunc("/encode", myencode)
	http.HandleFunc("/decode", mydecode)
	http.ListenAndServe(":8080", nil)
}

func myencode(w http.ResponseWriter, r *http.Request) {
	p1 := person{
		First: "Wati",
	}

	err := json.NewEncoder(w).Encode(p1)
	if err != nil {
		log.Println("Encoded bad data", err)
	}

}

func mydecode(w http.ResponseWriter, r *http.Request) {
	var p1 person

	err := json.NewDecoder(r.Body).Decode(&p1)
	if err != nil {
		log.Println("Decoded bad data", err)
	}

	log.Println("Person: ", p1)
}

Jalankan program go denga perintah go run main.go pada terminal.

Untuk melakukan testing encode, buka terminal baru, lalu jalankan perintah curl, akan dikembalikan hasil JSON encode.

$ curl localhost:8080/encode
{"First":"Wati"}

Untuk testing decode, jika Anda tidak terbiasa dengan perintah curl, gunakan online tool curl builder.

Sharing is caring: