golang gopkg.in/yaml.v3 yaml 解析、序列化工具

望舒的头像
望舒
标签:
golangyamlgopkg.in/yaml.v3配置文件解析yaml 序列化

在日常开发中,配置文件是非常常见的需求,而 YAML 以其简洁、可读性强的格式被广泛应用于配置管理中。在 Go 语言中,常用的解析和序列化 YAML 的库是 gopkg.in/yaml.v3。本文将介绍如何使用该库进行 YAML 文件的读取、解析和写入操作。

一、安装依赖

在项目中使用之前,需要通过 go get 安装依赖:

复制
展开
go get gopkg.in/yaml.v3

二、基本用法

假设我们有如下配置文件 config.yaml

复制
展开
app:
  name: "myapp"
  port: 8080
  debug: true

database:
  host: "localhost"
  port: 3306
  user: "root"
  password: "123456"

我们定义一个对应的结构体来映射:

复制
展开
package main

import (
	"fmt"
	"os"

	"gopkg.in/yaml.v3"
)

type Config struct {
	App struct {
		Name  string `yaml:"name"`
		Port  int    `yaml:"port"`
		Debug bool   `yaml:"debug"`
	} `yaml:"app"`

	Database struct {
		Host     string `yaml:"host"`
		Port     int    `yaml:"port"`
		User     string `yaml:"user"`
		Password string `yaml:"password"`
	} `yaml:"database"`
}

func main() {
	// 读取文件
	data, err := os.ReadFile("config.yaml")
	if err != nil {
		panic(err)
	}

	// 解析 YAML
	var cfg Config
	if err := yaml.Unmarshal(data, &cfg); err != nil {
		panic(err)
	}

	fmt.Printf("App Name: %s, Port: %d, Debug: %v\n", cfg.App.Name, cfg.App.Port, cfg.App.Debug)
	fmt.Printf("Database: %s:%d user=%s\n", cfg.Database.Host, cfg.Database.Port, cfg.Database.User)

	// 修改配置并序列化回 YAML
	cfg.App.Debug = false
	out, err := yaml.Marshal(&cfg)
	if err != nil {
		panic(err)
	}

	fmt.Println("Updated YAML:")
	fmt.Println(string(out))
}

运行结果:

复制
展开
App Name: myapp, Port: 8080, Debug: true
Database: localhost:3306 user=root

Updated YAML:
app:
  name: myapp
  port: 8080
  debug: false
database:
  host: localhost
  port: 3306
  user: root
  password: "123456"

三、常见技巧

  1. 忽略字段 使用 yaml:"-" 可以在序列化和反序列化时跳过某些字段。

  2. 处理 map 或 interface 如果结构体不确定,可以使用 map[string]interface{} 来动态解析。

  3. 多文档 YAML yaml.Decoder 支持逐个解析多文档 YAML 文件。

复制
展开
---
id: 1
name: "Alice"
---
id: 2
name: "Bob"
复制
展开
dec := yaml.NewDecoder(strings.NewReader(yamlData))
for {
	var item map[string]interface{}
	if err := dec.Decode(&item); err != nil {
		break
	}
	fmt.Println(item)
}

四、总结

  • gopkg.in/yaml.v3 是 Go 中处理 YAML 的主流库。
  • 提供 UnmarshalMarshal 两个核心函数,分别用于解析和序列化。
  • 支持结构体映射、map 动态解析以及多文档 YAML 处理。

在实际项目中,结合 配置管理微服务应用CI/CD 流程 等场景,YAML 配置的解析与写入是必不可少的技能。

作者:https://blog.xn--rpv331d.com/望舒

链接:https://blog.xn--rpv331d.com/望舒/blog/119

转载注意保留文章出处...

‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌​‌‌‌​‌‌‌‌​​‌​‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌​‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌‌‌​‌​‌​‌​​​‌​​​‌‌​‌​‌​‌‌​‌​‌‌‌‌‌​​​​​‌​​​​‌​​​​‌‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌​‌‌‌​‌‌‌‌​​‌​‌‌‌‌‌‌‌​​‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌​‌‌‌‌​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌​‌‌‌‌​‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌​‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌‌‌​‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​​‌​‌​​​‌‌​​‌​‌‌​​​‌‌‌‌​‌‌​‌​‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌​‌‌‌​‌‌‌‌​​‌​‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌​‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌​‌‌‌​‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌​​‌‌‌‌​‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌‌‌‌‌‌​​‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌​‌‌‌‌​‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌​‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌‌‌​‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​​‌​‌​​​‌‌​​‌​‌‌​​​‌‌‌‌​‌‌​‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌​‌‌‌​‌‌‌‌​​‌​‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌​‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌​‌‌​​‌​‌‌‌‌‌‌​‌​‌​​‌‌​‌​‌‌​‌​‌​​​​​​​‌​​​​‌​​​​‌‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌​‌‌‌​‌‌‌‌​​‌​‌‌‌‌‌‌‌​​‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌​‌‌‌‌​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌​‌‌‌‌​‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌​‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌‌‌​‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​​‌​‌​​​‌‌​​‌​‌‌​​​‌‌‌‌​‌‌​‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌​​‌‌‌‌‌​‌‌‌‌‌‌‌‌​​‌‌‌‌‌​‌‌‌‌​‌‌‌​​‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌​‌‌‌​‌‌‌‌​​‌​‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌​‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌​‌‌‌​‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌​​‌‌‌‌​‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌‌‌‌‌‌​​‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌​‌‌‌‌​‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌‌​‌‌‌​​‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌​‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌‌‌​‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​​‌​‌​​​‌‌​​‌​‌‌​​​‌‌‌‌​‌‌​‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌​​‌‌‌‌‌​‌‌‌‌‌‌‌‌​​‌‌‌‌‌​‌‌‌‌​‌‌‌​​‌‌‌‌‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌​‌‌‌​‌‌‌‌​​‌​‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌‌‌‌‌‌​​‌‌‌​‌‌​‌‌‌‌‌‌‌​‌‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​‌‌‌‌‌​‌‌‌‌​‌‌‌​‌‌‌‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌‌‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌​‌‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌​‌‌‌​‌‌‌‌‌​‌​‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌‌‌​​​​​‌‌​​‌​​‌‌‌‌​​​‌​‌‌​​‌​‌‌‌‌‌‌‌​​​​‌​​​‌​​​‌​‌‌‌​​​​‌‌‌​‌​‌‌‌​‌​‌​‌​​​‌​‌​​​‌‌‌​‌​​​‌​​​‌​‌‌​‌‌​​‌​​‌‌‌​‌​​​‌​‌‌​‌​‌​​​‌​​​​‌‌‌‌‌​‌‌‌‌​​​​​​​‌‌‌​‌‌​​​‌​​​‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌​‌‌‌​‌‌‌‌​‌‌‌​‌‌​‌‌‌​‌‌‌​​‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌​​‌​‌‌‌​‌‌‌‌​‌‌‌‌‌‌​‌‌
No data