Golang处理不定json问题-0xPoker's Blog

前言

之前在网上查找相关的内容时,并没有找到比较好的参考资料,大部分都是说取用别人封装好的包,或者遍历k v来实现,于是今天发现了直接用map来实现的方式,所以记录一下,方便下一次使用。最简单的使用struct来直接处理json,那种方法就不过多赘述了,比较浪费时间,网上一搜一大把。

针对标准Json的方式

这里的标准意思是最外层是由{}包围的。这种json比较标准易于处理。

tmpT := new(map[string]interface{})
err := json.Unmarshal(resp.Body, tmpT)
if err != nil {
    log.Fatalln(err)
}
log.Println(*tmpT["xxxxx"])

这种方法看起来就很亲和了,不需要每次去新定义结构体那些,不过如果在确定json的内容的情况下,还是推荐用struct吧。

针对一来就是一个Array的情况

这里的情况大概就是最外层不是 {} ,而是 [] 的情况。

tmpT := new([]map[string]interface{})
err := json.Unmarshal(resp.Body, tmpT)
checkError(err)
for _, row := range *tmpT {
    log.Println(row["xxxxx"])
}

这样就把go的不定json解析给搞定了。(我TCL,逃)