Golang ProgramsGolang Programs

This sample program demonstrates how to decode a JSON string.

Go language comes with more flexibility to work with the JSON document. In below example you can decode or unmarshal the JSON document into a map variable. The function Unmarshal of the json package is used to decode JSON values into Go values.
// This sample program demonstrates how to decode a JSON string.

package main

import (
	"fmt"	
	"encoding/json"	// Encoding and Decoding Package
)

// JSON Contains a sample String to unmarshal.

var JSON = `{
	"name":"Mark Taylor",
	"jobtitle":"Software Developer",
	"phone":{
		"home":"123-466-799",
		"office":"564-987-654"
	},
	"email":"markt@gmail.com"
}`

func main() {
	// Unmarshal the JSON string into info map variable.
	var info map[string]interface{}
	json.Unmarshal([]byte(JSON),&info)

	// Print the output from info map.
	fmt.Println(info["name"])
	fmt.Println(info["jobtitle"])
	fmt.Println(info["email"])
	fmt.Println(info["phone"].(map[string]interface{})["home"])	
	fmt.Println(info["phone"].(map[string]interface{})["office"])
}
C:\golang>go run example36.go
Mark Taylor
Software Developer
markt@gmail.com
123-466-799
564-987-654

C:\golang>

Here is the syntax for Unmarshal functions in Go:

func Unmarshal(data []byte, variable interface{}) error


The function Unmarshal parses the JSON-encoded data and stores the result into the second argument ( variable interface{} ).

The map variable "info" is declared as a map with a key of type string and a value of type interface{}. This means the map can store any type of value for any given key.