Reflection 如何使用reflect为golang中的字段设置数组值?
我有一个包含以下字段的结构Reflection 如何使用reflect为golang中的字段设置数组值?,reflection,go,Reflection,Go,我有一个包含以下字段的结构 type Config struct { Address[]string Name string } 我正在从JSON格式的文件中读取此配置的值 { "Address": ["xx.xx.xx.xx","xx.xx.xx.xx"], "Name":"Name" } 我已经使用Reflect来标识类型并将其值设置为Config func(v值)SetString(x字符串)这是reflect中的内置方法。有没有办法将[]字
type Config struct {
Address[]string
Name string
}
我正在从JSON格式的文件中读取此配置的值
{
"Address": ["xx.xx.xx.xx","xx.xx.xx.xx"],
"Name":"Name"
}
我已经使用Reflect来标识类型并将其值设置为Config
func(v值)SetString(x字符串)这是reflect中的内置方法。有没有办法将[]字符串值直接设置到字段?请提供帮助。您可以使用json包(它在内部使用reflect):
您可以为此使用json包(它在内部使用reflect):
为什么不使用标准库中的默认json解码器?它已经为你做了一切。为什么你不使用标准库中的默认json解码器呢?它已经为你做了一切。
package main
import (
"encoding/json"
"fmt"
)
type Config struct {
Address []string
Name string
}
var someJson = []byte(`{
"Address": ["xx.xx.xx.xx","xx.xx.xx.xx"],
"Name":"Name"
}`)
func main() {
var config Config
err := json.Unmarshal(someJson, &config)
if err != nil {
fmt.Println("error: ", err)
}
fmt.Printf("%v", config)
}