Golang : Covert map/slice/array to JSON or XML format
Problem :
You have a data struct in map, slice or array format and you have to convert the data to JSON or XML format. How to do that?
Solution :
Convert the map, slice or array data to JSON with json.Marshal()
function. In the struct, remember to add struct tags for JSON or XML.
NOTE : Set Content-Type to application/json or application/xml when writing out as HTTP response.
For example :
package main
import (
"encoding/json"
"fmt"
"net/http"
)
type KeyPair struct {
Id int `json:"id"` // <--- json struct tags
Name string `json:"name"` // <--- json struct tags
}
func Home(w http.ResponseWriter, r *http.Request) {
KP := KeyPair{Id: 1, Name: "Adam"}
fmt.Println(KP)
byte, err := json.Marshal(KP) // <---- here !
if err != nil {
return
}
w.Header().Set("Content-Type", "application/json") // <---- here !
fmt.Fprint(w, string(byte))
fmt.Println(string(byte))
}
func main() {
http.HandleFunc("/", Home)
http.ListenAndServe(":8080", nil)
}
To convert struct data to XML, just change the encoder and field tags to XML equivalent. See https://www.socketloop.com/tutorials/golang-xml-to-json-example for guide.
Happy coding!
See also : Golang : XML to JSON example
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+5.3k Fix fatal error: evacuation not done in time problem
+16k Golang : Convert slice to array
+13.6k Golang : Fix cannot use buffer (type bytes.Buffer) as type io.Writer(Write method has pointer receiver) error
+5.2k PHP : Convert string to timestamp or datestamp before storing to database(MariaDB/MySQL)
+14.9k Golang : Delete certain files in a directory
+7.2k Golang : Get YouTube playlist
+23.2k Golang : Fix type interface{} has no field or no methods and type assertions example
+9.6k Golang : Get escape characters \u form from unicode characters
+6.2k Unix/Linux : How to get own IP address ?
+8.2k Golang : Another camera capture GUI application with GTK and OpenCV
+22.3k Golang : simulate tail -f or read last line from log file example
+7.1k Golang : Dealing with struct's private part