Go의 Unmarshal로 복잡한 JSON 구문 분석
encoding/json 패키지는 JSON 데이터 구문 분석을 위한 json.Unmarshal 함수를 제공합니다. 이 함수는 JSON 문자열을 사전 정의된 구조체 또는 인터페이스{} 값으로 역마샬링하는 데 사용할 수 있습니다.
중첩 배열 및 객체를 포함할 수 있는 복잡한 JSON 구조를 처리할 때 인터페이스{}를 사용하면 개발자가 예상치 못한 상황을 처리할 수 있습니다. 데이터 구조. 예를 들어 다음 JSON을 고려해보세요.
{ "k1": "v1", "k2": "v2", "k3": 10, "result": [ [ ["v4", "v5", {"k11": "v11", "k22": "v22"}], ... ], "v3" ] }
이 JSON을 구문 분석하려면 다음 코드 조각을 사용할 수 있습니다.
import ( "encoding/json" "fmt" ) func main() { b := []byte(`{ "k1" : "v1", "k2" : "v2", "k3" : 10, "result" : [ [ ["v4", v5, {"k11" : "v11", "k22" : "v22"}] , ... , ["v4", v5, {"k33" : "v33", "k44" : "v44"} ] ], "v3" ] }`) var f interface{} err := json.Unmarshal(b, &f) if err != nil { fmt.Println("Error:", err) } // Access the data in the interface{} value m := f.(map[string]interface{}) fmt.Println("k1:", m["k1"]) fmt.Println("k3:", m["k3"]) for _, v := range m["result"].([]interface{}) { fmt.Println("Element:", v) } }
맵을 반복하고 유형 스위치를 사용하여, 올바른 유형의 값에 액세스할 수 있습니다. 이 접근 방식을 사용하면 유연하고 유형이 안전한 방식으로 알려지지 않은 JSON 구조로 작업할 수 있습니다.
위 내용은 `json.Unmarshal`을 사용하여 Go에서 복잡한 JSON 구조를 효율적으로 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!