나는 Go에 websocket 클라이언트를 작성하고 있습니다.깊게 중첩 된 json 키와 값에 액세스하는 방법
{"args":[{"time":"2013-05-21 16:57:17"}],"name":"send:time"}
내가 time
매개 변수를 액세스하기 위해 노력하고있어,하지만 단지 인터페이스 타입으로 깊이에 도달하는 방법을 파악할 수 없습니다 : 나는 서버에서 다음과 같은 JSON을 받고있어
package main;
import "encoding/json"
import "log"
func main() {
msg := `{"args":[{"time":"2013-05-21 16:56:16", "tzs":[{"name":"GMT"}]}],"name":"send:time"}`
u := map[string]interface{}{}
err := json.Unmarshal([]byte(msg), &u)
if err != nil {
panic(err)
}
args := u["args"]
log.Println(args[0]["time"]) // invalid notation...
}
분명히 어떤 오류, 표기를 잘하지 않기 때문에 :
invalid operation: args[0] (index of type interface {})
난 그냥 깊이 N 잡기 위해지도에 발굴 할 수있는 방법을 찾을 수 없습니다
ested 키와 값.
일단 동적 값을 가져 오면이 메시지를 선언하고 싶습니다. 어떻게 이러한 복잡한 데이터 구조체를 표현할 수있는 형식 구조체를 작성합니까?
반환 된 JSON은 항상 같은 필드를 갖습니까? – Intermernet
네, 기본적으로 같습니다. – ojosilva
그러면 데이터와 일치하는 구조체를 정의하는 것과 관련하여 @ cthom06을 제안해야합니다. 장기간에 걸쳐 각 분야에 대해 어떤 유형을 얻고 있는지 알게 될 것이므로 훨씬 쉽게 할 수 있습니다. – Intermernet