美文网首页
golang json解码的坑

golang json解码的坑

作者: golang推广大使 | 来源:发表于2019-06-08 14:31 被阅读0次

go语言中有个大坑,那就json反序列化的坑。下面的代码给出示例和解决办法:

package main

import (
    "bytes"
    "log"
    "time"

    "github.com/json-iterator/go"
)

type Info struct {
    Id int
}

func Log(format string, args ...interface{}) {
    log.Printf(format+"\n", args...)
}
func main() {
    log.SetFlags(log.Ldate | log.Lshortfile) //
    m := make(map[string]interface{})
    i := Info{
        Id: int(time.Now().UnixNano()),
    }
    json := jsoniter.ConfigCompatibleWithStandardLibrary
    data, _ := json.Marshal(i)
    json.Unmarshal(data, &m)
    Log("m is:%+v", m)

    dec := json.NewDecoder(bytes.NewBuffer(data))
    dec.UseNumber()
    dec.Decode(&m)

    Log("usenumber m is:%+v", m)
    dec = json.NewDecoder(bytes.NewBuffer(data))
    dec.Decode(&m)
    Log("m is:%+v", m)

}

相关文章

网友评论

      本文标题:golang json解码的坑

      本文链接:https://www.haomeiwen.com/subject/znsixctx.html