Go String Json

Goal

Convert string -> json (go struct, data)

Convert json -> string

encoding/json

To handle json and object in golang, please use encoding/json pakcage

Json String to Struct

The first example is to convert Json String to Go Struct

package main

import (
	"fmt"
	"encoding/json"
)

type Personal struct {
	Name string			`json:"name"`
	Age int				`json:"age"`
	Jobs []Job			`json:"josb"`
}

type Job struct {
	Name string 		`json:"name"`
}

func main() {
	jsonStr := `
	{
		"name": "Taro",
		"age": 15,
		"josb": [{
			"name": "Employee"
		}]
	}
	`
	jsonB :=  ([]byte)(jsonStr)
	jsonData := new(Personal) // jsonData := &Personal{}

	if err := json.Unmarshal(jsonB, jsonData); err != nil {
		fmt.Println("Error parse", err)
		return
	}
	fmt.Println(jsonData)
	fmt.Println(jsonData.Name)
	fmt.Println(jsonData.Age)
	fmt.Println(jsonData.Jobs[0].Name)
}

Struct to Json String

package main

import (
	"fmt"
	"encoding/json"
)

type Personal struct {
	Name string			`json:"name"`
	Age int				`json:"age"`
	Jobs []Job			`json:"josb"`
}

type Job struct {
	Name string 		`json:"name"`
}

func main() {
	job := Job{Name: "Duelist"}
	person := Personal{ 
		Name: "Jiro", 
		Age: 18, 
		Jobs: []Job{job},
	}
	jsonBytes, err := json.Marshal(person)
	if err != nil {
		fmt.Println("Json error:", err)
		return
	}
	fmt.Println(string(jsonBytes))
}
golang
スポンサーリンク
Professional Programmer2

コメント