GoLang에서 중첩 JSON 반복
동적 처리를 위해 중첩 JSON 구조에서 키-값 쌍을 추출해야 한다는 요구 사항이 있습니다. 이 구조를 효율적으로 탐색하려면 다음 접근 방식을 권장합니다.
범위 루프와 함께 유형 어설션 사용
응답에 제공된 대로 유형 어설션을 사용하여 반복적으로 사용할 수 있습니다. 중첩된 JSON 객체의 콘텐츠에 액세스하고 처리합니다. 다음 샘플 코드는 이 접근 방식을 보여줍니다.
package main import ( "encoding/json" "fmt" ) func main() { // Create a map for the JSON data m := map[string]interface{}{} // Unmarshal the JSON input into the map err := json.Unmarshal([]byte(input), &m) if err != nil { panic(err) } // Recursively parse the map parseMap(m) } func parseMap(aMap map[string]interface{}) { for key, val := range aMap { switch concreteVal := val.(type) { case map[string]interface{}: fmt.Println(key) parseMap(concreteVal) case []interface{}: fmt.Println(key) parseArray(concreteVal) 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(concreteVal) case []interface{}: fmt.Println("Index:", i) parseArray(concreteVal) default: fmt.Println("Index", i, ":", concreteVal) } } } const input = ` { "outterJSON": { "innerJSON1": { "value1": 10, "value2": 22, "InnerInnerArray": [ "test1" , "test2"], "InnerInnerJSONArray": [{"fld1" : "val1"} , {"fld2" : "val2"}] }, "InnerJSON2":"NoneValue" } } `
이 코드에서parseMap 및parseArray 함수는 중첩된 JSON 구조를 재귀적으로 순회하여 계층적 방식으로 키-값 쌍을 인쇄합니다. 이 접근 방식은 복잡성에 관계없이 JSON의 데이터에 액세스하고 처리할 수 있는 다양한 메커니즘을 제공합니다.
위 내용은 유형 어설션을 사용하여 GoLang에서 중첩 JSON을 효율적으로 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!