为什么解码返回结果为空

荣幸

我有下面的代码,我想将yaml转换为客户端转到数据结构并从中获取对象名称

package main

import (
  "fmt"

  "k8s.io/api/extensions/v1beta1"
  "k8s.io/client-go/kubernetes/scheme"
)

var yml = `
apiVersion: extensions/v1beta1
kind: Deployment
metadata: 
name: testnginx
replicas: 1
spec: 
template:
  metadata:
    labels:
      run: testnginx
  spec:
    containers:
    - image: nginx
      name: testnginx
      ports:
      - containerPort: 8080
`

func main() {
    decode := scheme.Codecs.UniversalDeserializer().Decode

    obj, _, err := decode([]byte(yml), nil, nil)
    if err != nil {
        fmt.Printf("%#v", err)
    }

  //fmt.Printf("%#v\n", obj)
  deployment := obj.(*v1beta1.Deployment)

    fmt.Printf("%#v\n", deployment.ObjectMeta.Name)
}

返回结果应该是testnginx,但为空

$ ./decode-k8s-exercise 
""

不知道为什么。谢谢

伊恩·邓肯(Iain Duncan):

问题出在yaml中。name字段应该是内部的属性,metadata但它们当前处于同一级别。如果您在空格上缩进名称,则该名称应该起作用(template以后也一样)。relicas也应该在里面spec

var yml = `
apiVersion: extensions/v1beta1
kind: Deployment
metadata: 
  name: testnginx
spec:
  replicas: 1
  template:
    metadata:
      labels:
        run: testnginx
    spec:
      containers:
      - image: nginx
        name: testnginx
        ports:
        - containerPort: 8080
`

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的测试结果为空,而我却嘲笑了依赖关系?

为什么程序显示空结果?

结果为空时,LINQ返回什么

为什么FormData为空?

为什么..let即使评估结果为非null也会返回nullable

为什么MongoDB $ size为空的子数组返回1?

为什么queryParams为空

结果集为空时返回数字

需要了解为什么内联函数的Promise结果不能解析为预期的返回结果

为什么“ cl_gui_textedit-> get_textstream`”的结果为空?

为什么结果为nil时find_by范围返回一个数组

为什么strcat的结果为空

为什么打印为空?

为什么UITableView为空?

为什么在Java中检测到的语言结果为空

如果结果集为空,则从MySQL和pdo :: fetchColumn()返回什么?

Active Record Association CollectionProxy无法正常工作:当@ owner。@ target返回一个空数组时,为什么@ owner。@ target.count的结果为1?

为什么我得到空结果?

当数组不包含空终止符时,为什么strlen()返回奇怪的结果?

为什么OutputDebugString为空

为什么即使变量为空,test -n也返回true?我究竟做错了什么?

为什么 Solr 拼写检查中的排序规则结果为空

为什么使用此查询时我的结果为空

为什么 all() 为空的可迭代对象返回 True?

为什么 Kubernetes 为 ioctl 返回奇怪的结果

为什么我的数组返回测试为空?

FindIndex 结果为真,为什么它返回 -1

为什么 mysqli_query 的结果返回一个对象,其字段设置为空?

为什么结果显示某些等级值为空