json:无法将数组解组为类型的Go值
配置json:
{
"monitor_servers_info":[
{
"server_info":{
"host":"127.0.0.1",
"port":28081,
"magic":"magic0",
"params":"all",
"interval":10000
}
},
{
"server_info":{
"host":"127.0.0.1",
"port":28080,
"magic":"magic1",
"params":"all",
"interval":10000
}
}
],
"sentry_server":{
"host":"127.0.0.1",
"port":80
},
"deadtime":"110000"
}
和我的golang代码是这样的:
type ServerInfo struct {
Host string `json:"host"`
Port int64 `json:"port"`
Magic string `json:"magic"`
Params string `json:"params"`
Interval int64 `json:"interval"`
}
type ServerInfoStrap struct {
ConnInfo ServerInfo `json:"server_info"`
}
type MonitorServerInfo struct {
Servers []ServerInfoStrap
}
type SentryServer struct {
Host string `json:"host"`
Port int64 `json:"port"`
}
type ConfigServer struct {
ServerInfo MonitorServerInfo `json:"monitor_servers_info"`
ConnServer SentryServer `json:"sentry_server"`
DeadTime string `json:"deadtime"`
}
json解析代码:
func readFile(filename string) (config ConfigServer, err error) {
bytes, err := ioutil.ReadFile(filename)
if err != nil {
fmt.Println("ReadFile: ", err.Error())
return
}
//bytes, err = StripComments(bytes) //去掉注释
//if err != nil {
// log.Info("Failed to strip comments from json: %s\n", err)
// return
//}
//xxx := make(map[string]interface{})
fmt.Println(string(bytes))
err = json.Unmarshal(bytes, &config)
if err != nil {
fmt.Println("Unmarshal: ", err.Error())
return
}
fmt.Println(config)
return
}
您的MonitorServerInfo
类型是造成问题的原因。摆脱它,它的工作原理是:
type ConfigServer struct {
ServerInfo []ServerInfoStrap `json:"monitor_servers_info"`
ConnServer SentryServer `json:"sentry_server"`
DeadTime string `json:"deadtime"`
}
游乐场:https://play.golang.org/p/Prt1j7ePCZ。
问题内容: 你想达到什么目的? 我正在尝试从JSON API解析数据。 粘贴显示问题的代码部分。 您期望结果如何? 我希望代码返回接口对象列表。 您得到的实际结果是什么? 我收到一个错误: 问题答案: 该应用程序正在将JSON数组解组到结构。解组切片: 考虑解组为[] map [string]字符串或[] Tick,其中Tick是
问题内容: 我有一项通过REST为我提供属性的服务。现在,我想将身体解组为属性结构。请查看此操场示例:单击。当我只有一个财产时,可以轻松将其编组为。但是,服务器发出的ACTUAL响应有所不同。我要解组的实际响应是这样的: 不幸的是,我不知道如何解组。有人可以指出正确的方向吗? 问题答案: 您需要解组一片属性:http : //play.golang.org/p/eRgjfBHypH
问题内容: 我得到以下数据: 通过websocket,我想将其解组到 使用以下命令解组它: 但我不断收到错误: json:无法将字符串解组到类型为feed.OrderBookItem的Go结构字段OrderBookResult.bids中 当我将结构更改为 有用。我希望将它们定义为它们是什么。我必须改变什么? 问题答案: 如错误所示: json:无法将字符串解组到类型为feed.OrderBook
问题内容: 嗨,我在解组嵌套的JSON数组时遇到问题。我应该创建什么结构?我想避免使用尽可能多的东西,但是我真的不知道在这种情况下是否有可能。 杰森,我想解组: 和我想用来解组的结构: 链接到示例:https : //play.golang.org/p/owuMptNrix 问题答案: 是的,答案只是一小部分: 好感谢你的问题,我发现这个错误的工具,我总是用它的Json操作一起去,它可以为你节省很
问题内容: 我有结构 我确实在HTML页面中写入JSON字节。jQuery修改对象中的字段并使用jQueries对对象进行编码,并且jQuery将字符串发布到Go处理程序。 编码为字符串的字段。 已发送:已收到: 问题在于无法解组该JSON,因为不再是整数。 处理此类数据的最佳方法是什么?我不希望手动转换每个字段。我希望编写紧凑,无错误的代码。 行情还不错。JavaScript不能与int64配合
问题内容: 我想解析一些json数据。数据如下所示: {“ id”:“ someId”,“ key_1”:“ value_1”,“ key_2”:“ value_2”,“ key_3”:“ value_3”,“点数”:[[1487100466412,“ 50.032178”,“ 8.526018”,300 ,0.0,26,0],[1487100471563,“ 50.030869”,“ 8.525