[go] Go에서 JSON 값을 정렬하기
이번에는 Go에서 JSON 값을 정렬하는 방법에 대해 알아보겠습니다. 기본적으로 Go의 내장된 encoding/json
패키지를 사용하여 JSON 값을 정렬할 수 있습니다.
JSON Marshal 사용
일반적으로 json.Marshal
함수를 사용하여 Go 구조체를 JSON으로 변환합니다. 하지만 이 함수는 구조체의 필드를 오름차순으로 정렬합니다.
만약 특정 필드를 기준으로 JSON을 정렬하려면, 해당 필드에 태그를 추가하여 직렬화할 때 해당 필드를 특정 기준으로 정렬할 수 있습니다.
아래는 날짜와 숫자 필드를 기준으로 JSON을 정렬하는 예제입니다:
type Person struct {
Name string
Age int
DOB time.Time `json:"dob"`
}
func main() {
p := Person{Name: "Alice", Age: 25, DOB: time.Date(1996, 2, 14, 0, 0, 0, 0, time.UTC)}
b, err := json.Marshal(p)
if err != nil {
fmt.Println("Error:", err)
}
fmt.Println(string(b))
}
위의 코드에서 DOB
필드에 json:"dob"
태그를 추가하여 dob
를 기준으로 JSON을 정렬하였습니다.
더 복잡한 정렬
더 복잡한 정렬을 위해서는 MarshalJSON
메서드를 사용하여 커스텀 마샬링을 구현할 수 있습니다. 이를 통해 원하는 대로 JSON을 정렬할 수 있습니다.
마무리
Go에서 JSON 값을 정렬하는 방법에 대해 간단히 살펴보았습니다. encoding/json
패키지를 통해 기본적인 정렬을 제공하고, 필요에 따라 커스텀 마샬링으로 더 복잡한 정렬을 구현할 수 있습니다.