Go Golang Lowercase key names with JSON Marshal and UnMarshal



Go Golang Lowercase key names with JSON Marshal and UnMarshal

Go Golang Lowercase key names with JSON Marshal and UnMarshal

Go Golang Lowercase key names with JSON Marshal and UnMarshal
struct field tag
package main1

/* https://golang.org/pkg/fmt/ */
import (
“encoding/json”
“fmt”
)

/*A struct is a type which contains named fields.
Define new type named ‘Person’*/
type Person struct {
Name string `json:”name”`
Age int `json:”age”`
Hobbies []string `json:”hobbies”`
}

func main1() {

/*initialize a struct.
Create an instance of type ‘Person’*/
p1 := Person{“Sam”, 20, []string{“cricket”, “football”}}
/*p1 := &Person{name: “Sam”, age: 20, hobbies: []string{“cricket”, “football”}}*/

/*ENCODE*/
/*p1_json_ind, _ := json.MarshalIndent(p1, “”, ” “)*/
p1_json, _ := json.Marshal(p1)
fmt.Println(“==p1_json==”, string(p1_json))

/*DECODE*/
var p2 Person
decode_error := json.Unmarshal(p1_json, &p2)
fmt.Printf(“==decode_error==%v n”, decode_error)

fmt.Printf(“==p2==%#v n”, p2)

}