JSON 데이터를 처리할 때 중첩 개체나 배열이 포함된 개체를 만나는 것이 일반적입니다. Go에서는 이러한 구조를 반복하는 것이 복잡한 작업이 될 수 있습니다.
제공된 예에는 여러 수준의 중첩이 포함된 JSON 입력이 있습니다. 작업은 객체를 반복하고 키-값 쌍을 문자열로 추출하는 것입니다.
권장되는 접근 방식은 유형 어설션 및 재귀 함수를 사용하는 것입니다. 재귀 함수는 복잡한 JSON 구조를 통해 내려갈 수 있으며 중첩된 각 객체 또는 배열에서 자신을 재귀적으로 호출합니다.
다음은 중첩된 JSON 구조를 순회하고 키-값 쌍을 인쇄하는 재귀 함수의 예입니다.
func parseMap(m map[string]interface{}) { for key, val := range m { switch val.(type) { case map[string]interface{}: parseMap(val.(map[string]interface{})) case []interface{}: parseArray(val.([]interface{})) default: fmt.Println(key, ":", val) } } } func parseArray(arr []interface{}) { for i, val := range arr { switch val.(type) { case map[string]interface{}: parseMap(val.(map[string]interface{})) case []interface{}: parseArray(val.([]interface{})) default: fmt.Println("Index:", i, ":", val) } } }
이 예에서는 중첩된 지도에서parseMap 함수가 재귀적으로 호출되고,parseArray 함수는 재귀적으로 호출됩니다. 중첩 배열에서. 유형 어설션을 사용하면 각 값의 유형을 결정하고 그에 따라 처리할 수 있습니다.
코드를 실행하려면 json을 사용하여 입력 JSON을 맵으로 역마샬링할 수 있습니다. .언마샬링 기능. 그런 다음, 마샬링되지 않은 맵을 인수로 전달하여parseMap 함수를 호출합니다. 추출된 키-값 쌍을 표시하면서 출력이 인쇄됩니다.
유형 어설션과 재귀 함수를 사용하는 이 접근 방식은 중첩된 값을 탐색하고 검사하는 체계적이고 효율적인 방법을 제공합니다. JSON 구조. 데이터 구조를 이해하고 이러한 기술을 사용하면 추가 분석이나 처리를 위해 키-값 쌍을 효과적으로 추출하고 처리할 수 있습니다.
위 내용은 Go에서 중첩된 JSON 객체를 효율적으로 반복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!