[go] JSON 데이터 합치기
이 글에서는 Go 언어에서 JSON 데이터를 합치는 방법에 대해 알아보겠습니다. JSON 데이터를 다룰 때 여러 소스에서 받아온 데이터를 합쳐야 하는 경우가 있을 수 있습니다. 이를 위해 Go 언어는 편리한 기능을 제공합니다.
1. JSON 데이터 정의
먼저, 합칠 JSON 데이터를 정의합니다. 예를 들어, 다음과 같은 두 개의 JSON 데이터가 있다고 가정해봅시다.
package main
import (
"encoding/json"
"fmt"
)
func main() {
data1 := []byte(`{"name": "John", "age": 30}`)
data2 := []byte(`{"city": "New York", "country": "USA"}`)
var result map[string]interface{}
if err := json.Unmarshal(data1, &result); err != nil {
panic(err)
}
if err := json.Unmarshal(data2, &result); err != nil {
panic(err)
}
fmt.Println(result)
}
위 코드에서는 json.Unmarshal
함수를 사용하여 JSON 데이터를 Go 언어에서 처리할 수 있는 형태로 변환하고, 이를 result
에 저장합니다.
2. JSON 데이터 합치기
JSON 데이터를 합치는 방법은 여러 가지가 있을 수 있지만, 간단하게 두 개의 데이터를 하나로 합치는 방법을 살펴보겠습니다.
package main
import (
"encoding/json"
"fmt"
)
func main() {
data1 := []byte(`{"name": "John", "age": 30}`)
data2 := []byte(`{"city": "New York", "country": "USA"}`)
var result map[string]interface{}
if err := json.Unmarshal(data1, &result); err != nil {
panic(err)
}
if err := json.Unmarshal(data2, &result); err != nil {
panic(err)
}
// JSON 데이터 합치기
mergedData := map[string]interface{}{
"person": result,
"location": map[string]interface{}{
"city": result["city"],
"country": result["country"],
},
}
mergedJSON, err := json.Marshal(mergedData)
if err != nil {
panic(err)
}
fmt.Println(string(mergedJSON))
}
위 코드에서는 mergedData
라는 새로운 map을 생성하여 두 개의 JSON 데이터를 합쳐줍니다. 마지막으로 json.Marshal
함수를 사용하여 합쳐진 데이터를 다시 JSON 문자열로 변환합니다.
결론
이렇게 간단한 방법으로 Go 언어에서 JSON 데이터를 합칠 수 있습니다. JSON 데이터를 다뤄야 하는 상황에서는 항상 데이터의 구조와 어떻게 합칠지에 대해 고민해보는 것이 중요합니다. JSON 데이터를 잘 다루어 효율적인 프로그래밍을 할 수 있도록 노력해야 합니다.