golang yaml修改二级部分
时间: 2023-07-29 10:08:36 浏览: 138
要修改 YAML 文件中的二级部分,可以使用 Go 语言中的 yaml 和 ioutil 包。以下是一个示例代码片段,假设我们要修改以下 YAML 文件的 "name" 字段:
```yaml
person:
name: John
age: 30
```
```go
package main
import (
"fmt"
"io/ioutil"
"gopkg.in/yaml.v2"
)
type Person struct {
Name string `yaml:"name"`
Age int `yaml:"age"`
}
func main() {
// 读取 YAML 文件
data, err := ioutil.ReadFile("person.yaml")
if err != nil {
panic(err)
}
// 解析 YAML 文件
var person Person
err = yaml.Unmarshal(data, &person)
if err != nil {
panic(err)
}
// 修改二级部分的 name 字段
person.Name = "Alice"
// 将修改后的数据写回到 YAML 文件
newData, err := yaml.Marshal(&person)
if err != nil {
panic(err)
}
err = ioutil.WriteFile("person.yaml", newData, 0644)
if err != nil {
panic(err)
}
fmt.Println("person.yaml 文件已更新!")
}
```
在这个示例中,我们首先使用 ioutil.ReadFile 函数读取 YAML 文件的内容,然后使用 yaml.Unmarshal 函数将其解析为 Person 结构体。接着,我们修改 Person 结构体的 Name 字段,然后使用 yaml.Marshal 函数将其转换回 YAML 格式的数据。最后,使用 ioutil.WriteFile 函数将修改后的数据写回到原始 YAML 文件中。
阅读全文