투케이2K

42. (Go Lang) [Mac Os] Go 문법 : json (제이슨) - JSON 디코딩 수행 및 구조체 필드 값 확인 - jsonObject 본문

Go Lang (Go 언어)

42. (Go Lang) [Mac Os] Go 문법 : json (제이슨) - JSON 디코딩 수행 및 구조체 필드 값 확인 - jsonObject

투케이2K 2024. 2. 22. 09:08

[개발 환경 설정]

개발 언어 : Go

 

[소스 코드]

package main

import (
	"encoding/json"
	"fmt"
)

func main() {

	// ---------------------------------------------------
	// [기본 설명]
	// ---------------------------------------------------
	// JSON (JavaScript Object Notation) 은 데이터를 교환하는 한 포맷 방식으로 key , value 형식으로 데이터를 생성할 수 있습니다
	// ---------------------------------------------------
	// Go 에서 JSON 을 사용하기 위해서는 표준패키지 encoding/json 을 사용할 수 있습니다
	// ---------------------------------------------------

	// [인코딩 구조체 생성]
	en_user := En_User{"Twok", 30}

	// [Json 인코딩 수행 : Marshal]
	jsonBytes, en_err := json.Marshal(en_user)
	if en_err != nil {
		panic(en_err)
	}

	// [Json 바이트를 문자열로 변경] : [인코딩 완료]
	jsonString := string(jsonBytes)

	// ------------------------------------------

	// [문자열을 바이트로 변경 실시]
	deByte := []byte(jsonString)

	// [구조체 지정 및 JSON 디코딩 수행]
	var de_user De_User
	de_err := json.Unmarshal(deByte, &de_user)
	if de_err != nil {
		panic(de_err)
	}

	// [로그 출력]
	fmt.Println("")
	fmt.Println("----------------------------------------------")
	fmt.Println("[로그 출력 수행]")
	fmt.Println("----------------------------------------------")
	fmt.Println("Name : ", de_user.Name)
	fmt.Println("Age : ", de_user.Age)
	fmt.Println("----------------------------------------------")
	fmt.Println("")
}

// ---------------------------------------------------

// [JSON 인코딩 사용될 구조체 생성]
type En_User struct {
	Name string
	Age  int
}

// ---------------------------------------------------

// [JSON 디코딩 사용될 구조체 생성]
type De_User struct {
	Name string
	Age  int
}

// ---------------------------------------------------
 

[결과 출력]


 

반응형
Comments