Go中ClusterRole的JSON解析不起作用

Go中ClusterRole的JSON解析不起作用,go,kubernetes,Go,Kubernetes,从Go中的Json解析ClusterRole对象中的元数据时出现问题 我举了一个例子: 包干管 进口 编码/json fmt k8s.io/kubernetes/pkg/api/rbac func main{ clusterDemo:=rbac.ClusterRole{} ClusterRoleSaw:=`{ apiVersion:rbac.authorization.k8s.io/v1, 种类:ClusterRole, 元数据:{ creationTimestamp:2021-01-21T08

从Go中的Json解析ClusterRole对象中的元数据时出现问题

我举了一个例子:

包干管 进口 编码/json fmt k8s.io/kubernetes/pkg/api/rbac func main{ clusterDemo:=rbac.ClusterRole{} ClusterRoleSaw:=`{ apiVersion:rbac.authorization.k8s.io/v1, 种类:ClusterRole, 元数据:{ creationTimestamp:2021-01-21T08:07:13Z, managedFields:[], 名称:kubeadm:get节点, 资源版本:220, uid:c78a8b10-cd20-4b64-8e4d-4f7f758c7b65 }, 规则:[] }` err:=json.Unmarshal[]byteclusterRolesRaw,&clusterDemo 如果错误!=零{ fmt.PrintFunMarshall文件:%v,错误 } fmt.PrintfName:%s\n,clusterDemo.Name fmt.PrintfKind:%s\n,clusterDemo.Kind } 用它运行

# go get -v ./... 
# go run <filename>
Name: 
Kind: ClusterRole
如您所见,对种类字段进行了解析,但元数据的名称字段部分没有解析

我的问题是为什么?看起来嵌套结构没有被解析

非常感谢您的帮助,我想我遗漏了一些东西

将您的导入从k8s.io/kubernetes/pkg/api/rbac更改为rbac k8s.io/api/rbac/v1

它应该可以工作。

将导入从k8s.io/kubernetes/pkg/api/rbac更改为rbac k8s.io/api/rbac/v1


它应该可以工作。

在中,metav1.ObjectMeta是一个内嵌/嵌入字段。所以我不认为JSON应该在元数据下嵌套字段?这是我从kubectl get clusterroles-o jsonIn中得到的,metav1.ObjectMeta是一个内联/嵌入字段。所以我不认为JSON应该在元数据下嵌套字段?这是我从kubectl get clusterroles-o JSON得到的