在Golang中,在类型中定义类型是无效的语法。如果尝试此操作,会出现以下错误: syntax error: unexpected type, expecting field name or embedded typesyntax error: non-declaration statement outside function body 这里基本上有两种选择: 如果需要中间类型,则需要分别定义每种类型,不过如果不想在正在使用的包之外混乱代码,可以选择不导出它们。 如果只需要嵌套的JSON本身,可以尝试在反序列化之前使用有效负载来提取所需的数据,从而避免定义所有中间类型。 var data = "{\"Car\": {\"Wheel\": {\"name\": \"derp\"}}}"var raw map[string]interface{}json.Unmarshal([]byte(data), &raw)fmt.Print(raw)// map[Car:map[Wheel:map[name:derp]]]