当我不知道 yaml 可以拥有的每个可能字段时,如何修改 yaml 中的字段?我无法定义一个包含所有可能字段的结构,并且 gopkg.in/yaml.v2
Unmarshall
会忽略不在提供的结构中的字段,因此 Marshall
丢失了结构中不存在的任何字段,这是 Not Acceptable 。
是否有一个包允许我动态指定一个字段名称,如果该字段存在,则返回基本值或结构,否则返回 nil/err?并整理我的更改,同时保留输入 yaml 中的所有其他字段?
谢谢,保罗
最佳答案
使用 map[interface{}]interface{}
进行解码就成功了:
wcc := make(map[interface{}]interface{})
err := yaml.Unmarshal([]byte(wccString), &wcc)
访问 yaml 结构的符号(对我来说)并不直观,但我最终找到了一个有效的咒语:
wcc["extensions"].(map[interface{}]interface{})["scriptURLs"].([]interface{})[2] = "https://192.168.0.3:8080/..."
关于go - 当我不知道 yaml 中每个可能的字段时,如何修改 go 中的 yaml 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58103857/