go 如何解析没有Key的JsonArray

weixin_36866583 2016-11-29 05:16:06
例如如下格式:
[2,
"19223201",
"Boot",
{"Vendor": "VendorX", "Model": "SingleSocket"}
]



想了很多办法都解析不了~~


这样打印也是空,好郁闷~~
err := json.Unmarshal(NewMsg, &r)
if err != nil {
return err
}
m, _ := r.(map[string]interface{})
fmt.Println("m:", m)
...全文
3028 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aree 2018-03-01
  • 打赏
  • 举报
回复
func jsonParse(f interface{}){ m := f.(map[string]interface{}) for k, v := range m { switch vv := v.(type) { case string: fmt.Println(k, "[string] :", vv) case float64: fmt.Println(k, "[float64]:", vv) case bool: fmt.Println(k, "[bool]:", vv) case nil: fmt.Println(k, "[nil]:", vv) case []interface{}: fmt.Println(k, "[array]:") for i, u := range vv { //var f1 interface{} switch vv1 := u.(type) { case string: fmt.Println(i, "[string_] :", u) case float64: fmt.Println(i, "[float64_]:", u) case bool: fmt.Println(i, "[bool_]:", u) case nil: fmt.Println(i, "[nil_]:", u) case []interface{}: fmt.Println(i, "[array_] :", u) //m1 := u.(map[string]interface{}) //jsonParse(u) case interface{}: fmt.Println(i, "[interface_]:",u) m1 := u.(map[string]interface{}) jsonParse(m1) default: fmt.Println(" ", i, "[type?_]", u, ", ",vv1) } } case interface{}: fmt.Println(k, "[interface]:",vv) m1 := v.(map[string]interface{}) jsonParse(m1) default: fmt.Println(k, "[type?]",vv) } } } func main() { b := []byte(`{"Name":"Wednesday", "Age":6,"Parents": [ "Gomez", "Moticia" ],"data":[{"a":"aa","b":"bb"},{"c":"cc"},{"list":["dd",1,"ff"]}]}`) var f interface{} err := json.Unmarshal(b, &f) if err != nil { fmt.Println(err) } jsonParse(f) }
haizideai000 2018-02-23
  • 打赏
  • 举报
回复
first: 你这个是一个类型不定的数组, 类型应该是[]interface{} second: 假设你需要对每个value 进行解析,你可以通过断言的方式和反射的方式在进行下一步解析
不得闲 2016-12-02
  • 打赏
  • 举报
回复
你这个结构都不是Map类型的,你声明为Map的结构作为接收的肯定不行啊 用[]interface{}这种切片类型去搞
weixin_36866583 2016-11-29
  • 打赏
  • 举报
回复
r是 interface var r interface{}
内容概要:本文系统阐述了网络安全中的防火墙、入侵检测系统(IDS)与入侵防御系统(IPS)的核心原理与技术差异。重点介绍了防火墙的四种典型结构(包过滤路由器、双宿主主机、屏蔽主机网关、被屏蔽子网),IDS的七大功能及其旁路监听、被动告警的工作模式,以及IPS串行部署、主动阻断攻击的特点。文章对比了IDS与IPS在部署方式、响应能力等方面的区别,解析了基于签名和异常检测的技术原理,并通过典型试题强化理解,最后提出“防火墙+IDS+IPS”多层协同的部署建议,构建纵深防御体系。; 适合人群:网络安全初学者、信息安全相关专业学生、从事网络运维或安全防护工作的技术人员;具备基本网络知识,希望深入理解安全检测与防御机制的学习者。; 使用场景及目标:①掌握防火墙、IDS、IPS的功能定位与协同关系;②理解基于签名与异常检测的技术差异及适用场景;③学会在实际网络环境中部署多层安全防护体系;④备考网络安全相关认证或课程考试。; 阅读建议:学习时应结合表格对比、试题解析加深理解,重点关注IDS与IPS的核心区别及互补性,在实验环境中模拟部署流程,配合Snort等工具实践检测规则配置,提升实战能力。

2,351

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • 俺叫西西弗斯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧