golang在将struct转成json字符串的时候如何将日期类型的数据格式化?

Python013

golang在将struct转成json字符串的时候如何将日期类型的数据格式化?,第1张

如果你想输出的时间是YYYY-MM-DD的话

要在使用json数据化之前自己处理时间

type Article struct {

    Id             int

    Title          string

    CreateTimeStr  string

}

然后要将之前的时间转过来

Article.CreateTimeStr = Createdatetime.Format("2006-01-02")

最后序列化JSON就是YYYY-MM-DD

这是最简单的方法

结构体与[]byte不能直接转化,可以通过gob来转换。编码时如下,假设默认的结构体为datafunc Encode(data interface{}) ([]byte, error) { buf := bytes.NewBuffer(nil) enc := gob.NewEncoder(buf) err := enc.Encode(data) if err != nil { return nil, err } return buf.Bytes(), nil }解码时如下,data为需要解码的字节数组,to为相应的接收结构体,记住to的结构体结构应与被编码的data相一致,解码后内容保存在to里面,直接使用to即可func Decode(data []byte, to interface{}) error { buf := bytes.NewBuffer(data) dec := gob.NewDecoder(buf) return dec.Decode(to) }使用的时候:b, err := Encode(data) if err != nil { //错误处理 } if err := Decode(b, &to)err != nil { //错误处理}

func ByteToBinaryString(data byte) (str string) {

var a byte

for i:=0i <8i++ {

a = data

data <<= 1

data >>= 1

switch (a) {

case data: str += "0"

default: str += "1"

}

data <<= 1

}

return str

}

//该代码片段来自于: http://www.sharejs.com/codes/go/4357

使用方法package main

import . "fmt"

func main() {

Printf("[%s][%s][%s][%s]\n",

ByteToBinaryString(byte(0)),ByteToBinaryString(byte(231)),

ByteToBinaryString(byte(168)), ByteToBinaryString(byte(162)))

}