Go에서 중첩된 JSON 구조를 통한 반복
이 질문은 Go에서 중첩된 JSON 구조를 효율적으로 반복하는 방법을 탐구합니다. 질문에 제공된 JSON 예제를 고려하십시오. 목표는 이 복잡한 JSON 구조에서 모든 키-값 쌍을 추출하는 것입니다.
유형 전환과 재귀의 조합을 사용하여 문자열 키와 인터페이스 값의 맵을 구문 분석하는 사용자 정의 함수를 구현할 수 있습니다.
func parseMap(aMap map[string]interface{}) { for key, val := range aMap { switch concreteVal := val.(type) { case map[string]interface{}: fmt.Println(key) parseMap(val.(map[string]interface{})) case []interface{}: fmt.Println(key) parseArray(val.([]interface{})) default: fmt.Println(key, ":", concreteVal) } } }
마찬가지로 인터페이스 값의 배열을 재귀적으로 구문 분석할 수 있습니다.
func parseArray(anArray []interface{}) { for i, val := range anArray { switch concreteVal := val.(type) { case map[string]interface{}: fmt.Println("Index:", i) parseMap(val.(map[string]interface{})) case []interface{}: fmt.Println("Index:", i) parseArray(val.([]interface{})) default: fmt.Println("Index", i, ":", concreteVal) } } }
이를 호출하여 함수를 재귀적으로 사용하면 JSON 구조를 반복하여 원하는 형식으로 모든 키-값 쌍을 추출할 수 있습니다.
위 내용은 Go에서 중첩된 JSON 구조를 효율적으로 반복하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!