Go Unmarshal 딕셔너리 컬럼 받기

1 개요[ | ]

Go Unmarshal 딕셔너리 컬럼 받기
{"id":1,"name":"Go","version":{"major":1,"minor":16,"patch":3}}
{"id":2,"name":"Python","version":{"major":3,"minor":8,"patch":9}}

2 방법 1: 중첩 struct[ | ]

package main

import (
	"encoding/json"
	"fmt"
)

type language struct {
	ID      int      `json:"id"`
	Name    string   `json:"name"`
	Version version  `json:"version"`
}

type version struct {
	Major  int  `json:"major"`
	Minor  int  `json:"minor"`
	Patch  int  `json:"patch"`
}

func main() {
	j1 := `{"id":1,"name":"Go","version":{"major":1,"minor":16,"patch":3}}`
	j2 := `{"id":2,"name":"Python","version":{"major":3,"minor":8,"patch":9}}`

	language1 := language{}
	if err := json.Unmarshal([]byte(j1), &language1); err != nil {
		panic(err)
	}
	fmt.Printf("language1: %+v\n", language1)

	language2 := language{}
	if err := json.Unmarshal([]byte(j2), &language2); err != nil {
		panic(err)
	}
	fmt.Printf("language2: %+v\n", language2)
}
package main

import (
	"encoding/json"
	"fmt"
)

type version struct {
	Major  int  `json:"major"`
	Minor  int  `json:"minor"`
	Patch  int  `json:"patch,omitempty"`
}

type language struct {
	ID      int      `json:"id"`
	Name    string   `json:"name"`
	Version version  `json:"version"`
}

func main() {
	j1 := `{"id":1,"name":"Go","version":{"major":1,"minor":16,"patch":3}}`
	j2 := `{"id":2,"name":"Python","version":{"major":3,"minor":8,"patch":9}}`
	j3 := `{"id":3,"name":"R","version":{"major":3,"minor":6}}`

	language1 := language{}
	if err := json.Unmarshal([]byte(j1), &language1); err != nil {
		panic(err)
	}
	fmt.Printf("language1: %+v\n", language1)

	language2 := language{}
	if err := json.Unmarshal([]byte(j2), &language2); err != nil {
		panic(err)
	}
	fmt.Printf("language2: %+v\n", language2)

	language3 := language{}
	if err := json.Unmarshal([]byte(j3), &language3); err != nil {
		panic(err)
	}
	fmt.Printf("language3: %+v\n", language3)
}

3 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}