美文网首页
golang json encoder

golang json encoder

作者: 夜空一起砍猩猩 | 来源:发表于2018-08-28 16:46 被阅读0次

    package main

    import (

        "fmt"

        "encoding/json"

        "bytes"

    )

    type Device struct{

        SN string `json:"s"`

        Model string `json:"m,omitempty"`

    }

    func (d Device) String() string{

        return fmt.Sprintf("serial:%s model:%s", d.SN, d.Model)

    }

    var m = map[string]interface{}{

    "sn": "123456",

    "platform": 602,

    "force": true,

    "location": []string{"paris","beijing"},

    "decr": "",

    }

    func encodeJson(v interface{}) ([]byte, error){

        var buf bytes.Buffer

        encoder := json.NewEncoder(&buf)

        encoder.SetEscapeHTML(false)

        if err := encoder.Encode(v); err != nil{

            return nil, err

        }

        return buf.Bytes(), nil

    }

    func main() {

        if s, err := json.Marshal(m); err != nil{

            panic(err)

        }else{

            fmt.Println(string(s))

        }

        if b, err := encodeJson(m); err != nil{

            panic(err)

        }else{

        fmt.Println(string(b))

        }

        d := Device{SN:"123456", Model:"http://baidu.com"}

        if ds, err := encodeJson(d); err != nil{

            panic(err)    

        }else{

            fmt.Println(string(ds))

        }

    }

    相关文章

      网友评论

          本文标题:golang json encoder

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