Golang program to demonstrates how to encode map data into a JSON string.
The below example is to converts a map type into a JSON string. First we need to add the package encoding/json to the list of imports. Then Marshal function of the json package is used to encode Go values into JSON values.
Example
package main
import (
"fmt"
"encoding/json" // Encoding and Decoding Package
)
func main() {
// Create a map of key/value pairs and parses the data into JSON
emp := make(map[string]interface{})
emp["name"] = "Mark Taylor"
emp["jobtitle"] = "Software Developer"
emp["phone"] = map[string]interface{}{
"home": "123-466-799",
"office": "564-987-654",
}
emp["email"] = "markt@gmail.com"
// Marshal the map into a JSON string.
empData, err := json.Marshal(emp)
if err != nil {
fmt.Println(err.Error())
return
}
jsonStr := string(empData)
fmt.Println("The JSON data is:")
fmt.Println(jsonStr)
}
Output
The JSON data is:
{"email":"markt@gmail.com","jobtitle":"Software Developer","name":"Mark Taylor","phone":{"home":"123-466-799","office":"564-987-654"}}
Here is the syntax for Marshal functions in Go:
func Marshal(v interface{}) ([]byte, error)
Marshal function is good for producing JSON that could be returned in a network response, like a Restfult API. The function Marshal returns two values: the encoded JSON data as slice byte and an error value. Using Marshal , we can also encode the values of struct type as JSON values that will help us to quickly build JSON-based APIs.
Most Helpful This Week
How to Improve the Performance of Your Golang Application?
Example of Golang CRUD using MySQL from scratch
Example of Abstraction using Interfaces in Golang
Implementing interface from different package golang
This sample program demonstrates how to decode a JSON string.
How to use WaitGroup to delay execution of the main function until after all goroutines are complete.