[go] JSON 데이터 필드 추가하기

JSON(JavaScript Object Notation)은 데이터를 손쉽게 저장하고 교환하기 위한 경량의 데이터 형식입니다. 때때로 새로운 데이터 필드를 JSON 객체에 추가해야 할 때가 있습니다. 여기서는 Go 언어를 사용하여 JSON 데이터에 필드를 추가하는 방법을 살펴보겠습니다.

JSON 데이터 생성하기

먼저, 새로운 데이터 필드를 추가하기 전에 기존의 JSON 데이터를 생성해야 합니다. 아래는 Go 언어에서 간단한 JSON 데이터를 생성하는 예제입니다.

package main

import (
	"encoding/json"
	"fmt"
)

type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

func main() {
	person := Person{Name: "Alice", Age: 30}

	jsonData, err := json.Marshal(person)
	if err != nil {
		fmt.Println("Error encoding JSON")
		return
	}

	fmt.Println(string(jsonData))
}

위의 예제에서는 Person 구조체를 정의하고, json.Marshal 함수를 사용하여 해당 구조체를 JSON 형식으로 변환하고 출력합니다.

JSON 데이터 필드 추가하기

새로운 데이터 필드를 JSON 데이터에 추가하려면 Go 언어의 map을 사용하여 JSON 데이터를 다루는 것이 편리합니다. 아래의 예제는 이미 존재하는 JSON 데이터에 email 필드를 추가하는 방법을 보여줍니다.

func main() {
	person := Person{Name: "Alice", Age: 30}

	// 기존의 JSON 데이터
	jsonData, err := json.Marshal(person)
	if err != nil {
		fmt.Println("Error encoding JSON")
		return
	}

	// JSON 데이터를 map으로 변환
	var data map[string]interface{}
	if err := json.Unmarshal(jsonData, &data); err != nil {
		fmt.Println("Error decoding JSON")
		return
	}

	// 새로운 필드 추가
	data["email"] = "alice@example.com"

	// map을 다시 JSON으로 변환
	newJSONData, err := json.Marshal(data)
	if err != nil {
		fmt.Println("Error encoding JSON")
		return
	}

	fmt.Println(string(newJSONData))
}

위의 예제에서 json.Unmarshal 함수를 사용하여 JSON 데이터를 map으로 변환한 후, 새로운 필드를 추가하고 다시 JSON 형식으로 변환하여 출력합니다.

이제 Go 언어를 사용하여 JSON 데이터에 필드를 추가하는 방법을 이해했습니다. 다음에 JSON 데이터를 다룰 때 유용하게 활용해보세요!

References