[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 데이터를 다룰 때 유용하게 활용해보세요!