[go] Go에서 JSON 값을 필터링하기

JSON(JavaScript Object Notation)은 데이터를 저장하고 전송하기 위한 경량의 데이터 형식으로 널리 사용됩니다. Go 언어는 JSON 데이터를 다루기 위한 표준 라이브러리를 제공하고 있어서, JSON 값을 필터링하고 가공하는 것이 상대적으로 간단합니다.

JSON Unmarshalling

먼저, Go에서 JSON 값을 필터링하려면 JSON 데이터를 Go의 데이터 구조로 변환해야 합니다. 이를 위해 Go의 encoding/json 패키지를 사용하여 JSON 데이터를 구조체(struct)나 맵(map) 등의 형식으로 언마샬링(unmarshalling)합니다.

아래는 JSON 데이터를 Go의 구조체로 언마샬링하는 예시입니다.

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

func main() {
    jsonStr := `{"name": "Alice", "age": 30, "city": "New York"}`
    var person Person
    _ = json.Unmarshal([]byte(jsonStr), &person)
    fmt.Println(person.Name, person.Age)
}

필터링 및 처리

언마샬링된 데이터를 필터링하고 처리하기 위해서는 필요한 데이터만 추출하거나 원하는 형식으로 가공해야 합니다. 이를 위해 해당 필드에 접근하여 값을 가져오거나, 새로운 JSON 데이터를 생성할 수 있습니다.

아래는 Go에서 JSON 필드를 필터링하고 새로운 JSON 데이터를 생성하는 예시입니다.

func filterAndProcess(jsonStr []byte) []byte {
    var input map[string]interface{}
    _ = json.Unmarshal(jsonStr, &input)

    output := map[string]interface{}{
        "name": input["name"],
        "age":  input["age"],
    }

    processedJSON, _ := json.Marshal(output)
    return processedJSON
}

결론

Go는 표준 라이브러리를 활용하여 JSON 데이터를 처리하고 필터링하는 것이 간단하며, 필요에 따라 필드를 추출하거나 새로운 JSON을 생성할 수 있습니다. JSON 데이터를 효율적으로 다루고 처리하기 위해 Go의 JSON 라이브러리를 익혀두는 것이 유용할 것입니다.

이상으로 Go에서 JSON 값을 필터링하는 방법에 대해 알아보았습니다.

참고: Go JSON 패키지 문서