使用go语言将yaml中多个emis-apis.code,emis-apis.url读取到struct中 ,注意code与url对应是一个struct中的属性
时间: 2024-11-29 14:16:28 浏览: 5
在Go语言中,要从YAML文件中解析多个`emis-apis.code`和`emis-apis.url`对,并将它们映射到一个结构体中,你可以使用`encoding/yaml`包来进行序列化和反序列化操作。首先,你需要创建一个结构体来表示`emis-apis`:
```go
type EmisApi struct {
Code string `yaml:"code"`
URL string `yaml:"url"`
}
// 创建一个包含多个EmisApi的切片,用于存储数据
type EmisApisList []EmisApi
```
然后,你可以使用下面的函数来读取YAML文件并将其内容填充到结构体中:
```go
import (
"encoding/json"
"encoding/yaml"
"fmt"
"os"
)
func readYAML(file string) (EmisApisList, error) {
// 打开文件
fileBytes, err := ioutil.ReadFile(file)
if err != nil {
return nil, fmt.Errorf("failed to read YAML file: %w", err)
}
// 解析YAML数据
var emisApisList EmisApisList
err = yaml.Unmarshal(fileBytes, &emisApisList)
if err != nil {
return nil, fmt.Errorf("error unmarshalling YAML: %w", err)
}
return emisApisList, nil
}
```
使用这个函数时,只需传入你要读取的YAML文件名:
```go
emisApis, err := readYAML("your_yaml_file.yaml")
if err != nil {
// 处理错误
} else {
for _, api := range emisApis {
fmt.Printf("Code: %s, URL: %s\n", api.Code, api.URL)
}
}
阅读全文