Golang encoding/json.NewDecoder() function example

package encoding/json

NewDecoder returns a new decoder that reads from r (1st parameter). The decoder introduces its own buffering and may read data from r beyond the JSON values requested.

Golang encoding/json.NewDecoder() function usage example

 package main

 import (
 "encoding/json"
 "fmt"
 "strings"
 "io"
 )

 func main() {
 var jsonDataStream = `
 {"Name":"Adam","Age":36,"Job":"CEO"}
 {"Name":"Eve","Age":34,"Job":"CFO"}
 {"Name":"Mike","Age":38,"Job":"COO"}
 `

 type Employee struct {
 Name string
 Age  int
 Job  string
 }

 decoder := json.NewDecoder(strings.NewReader(jsonDataStream))

 for {
 var worker Employee
 if err := decoder.Decode(&worker); err == io.EOF {
 break
 } else if err != nil {
 fmt.Println(err)
 }

 fmt.Printf("%s | %d | %s\n", worker.Name, worker.Age, worker.Job)
 }

 }

Output :

Adam | 36 | CEO

Eve | 34 | CFO

Mike | 38 | COO

Reference :

http://golang.org/pkg/encoding/json/#NewDecoder

Advertisement