go语言yaml转map、map遍历的实现

作者:lemom啊 时间:2024-05-25 15:19:52 

yaml文件内容


apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
 name: mysql-snapshot
spec:
 privileged: false
 allowPrivilegeEscalation: false
 volumes:
 - "*"
 hostNetwork: false
 hostIPC: false
 hostPID: false
 runAsUser:
   rule: RunAsAny
 seLinux:
   rule: RunAsAny
 supplementalGroups:
   rule: RunAsAny
 fsGroup:
   rule: RunAsAny

示例代码:实现了base64 编解码、yaml转map、以及map遍历


func main() {
f, err := os.Open("cmd/test.yaml")
if err != nil {
 log.Fatalln(err)
 return
}

input, _ := ioutil.ReadAll(f)
// base64 编码
encodeString := base64.StdEncoding.EncodeToString(input)
fmt.Println(encodeString)

// base64 解码
decodeBytes, err := base64.StdEncoding.DecodeString(encodeString)
if err != nil {
 log.Fatalln(err)
}

//yaml文件内容转换成map[interface{}]interface{})

resultMap := make(map[interface{}]interface{})
if err := yaml.Unmarshal(decodeBytes, &resultMap); err != nil {
 // error handling
 log.Fatalln(err)

}

// 遍历map ,此处取metadata.name值
for key, value := range resultMap {
 switch key := key.(type) {
 case string:
  if key == "metadata" {
   switch value := value.(type) {
   case string:
   case map[interface{}]interface{}:
    for k, v := range value {
     switch k.(type) {
     case string:
       if k == "name" {
        fmt.Println("value=", v)
       }
     }
    }

}

}
 }
}
}

结果

encodeString = "YXBpVmVyc2lvbjogcG9saWN5L3YxYmV0YTEKa2luZDogUG9kU2VjdXJpdHlQb2xpY3kKbWV0YWRhdGE6CiAgbmFtZTogbXlzcWwtc25hcHNob3QKc3BlYzogCiAgcHJpdmlsZWdlZDogZmFsc2UKICBhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb246IGZhbHNlCiAgdm9sdW1lczoKICAtICIqIgogIGhvc3ROZXR3b3JrOiBmYWxzZQogIGhvc3RJUEM6IGZhbHNlCiAgaG9zdFBJRDogZmFsc2UKICBydW5Bc1VzZXI6CiAgICBydWxlOiBSdW5Bc0FueQogIHNlTGludXg6CiAgICBydWxlOiBSdW5Bc0FueQogIHN1cHBsZW1lbnRhbEdyb3VwczoKICAgIHJ1bGU6IFJ1bkFzQW55CiAgZnNHcm91cDoKICAgIHJ1bGU6IFJ1bkFzQW55Cg=="

value=mysql-snapshot

来源:https://blog.csdn.net/qq_22143251/article/details/110430886

标签:go语言,yaml,map,map遍历
0
投稿

猜你喜欢

  • 在ASP.NET 2.0中操作数据之五十三:在Data Web控件显示二进制数据

    2023-07-21 05:18:32
  • IntelliJ IDEA卡死,如何优化内存

    2023-07-04 12:10:27
  • python中requests库session对象的妙用详解

    2021-10-30 14:42:58
  • 从基础开始建立一个JS代码库第1/2页

    2024-04-16 10:40:59
  • python实现自动登录

    2023-10-20 05:11:46
  • MySQL定时备份数据库操作示例

    2024-01-13 09:34:24
  • 详解python中的装饰器

    2023-02-20 10:33:36
  • 设计可以量化吗?

    2009-06-12 12:12:00
  • 老版本PHP转义Json里的特殊字符的函数

    2023-11-06 02:32:18
  • Go中的应用配置管理详解

    2023-06-21 00:40:55
  • python 使用值来排序一个字典的方法

    2022-02-05 00:25:05
  • MySQL全文索引实现简单版搜索引擎实例代码

    2024-01-25 20:30:19
  • Yii2 rbac权限控制操作步骤实例教程

    2024-05-22 10:02:18
  • Python OpenCV绘制各类几何图形详解

    2023-02-04 18:27:01
  • 深入浅析Python中的迭代器

    2021-02-20 03:36:43
  • 基于python+selenium的二次封装的实现

    2023-02-19 04:47:16
  • Mysql误操作后利用binlog2sql快速回滚的方法详解

    2024-01-23 19:00:31
  • Python纯代码通过神经网络实现线性回归的拟合方式

    2022-07-12 23:54:59
  • python-Web-flask-视图内容和模板知识点西宁街

    2021-03-10 22:21:15
  • Mysql数据库使用concat函数执行SQL注入查询

    2024-01-18 04:55:35
  • asp之家 网络编程 m.aspxhome.com