如何格式化传出JSON中的时间戳

EdgeCaseBerg

我最近一直在玩Go,它很棒。在浏览文档和博客文章之后,我似乎无法弄清楚的事情是如何将time.Time类型格式化为我想要的格式,json.NewEncoder.Encode

这是一个最小的代码示例:

package main

type Document struct {
    Name        string
    Content     string
    Stamp       time.Time
    Author      string
}

func sendResponse(data interface{}, w http.ResponseWriter, r * http.Request){
     _, err := json.Marshal(data)
    j := json.NewEncoder(w)
    if err == nil {
        encodedErr := j.Encode(data)
        if encodedErr != nil{
            //code snipped
        }
    }else{
       //code snipped
    }
}

func main() {
    http.HandleFunc("/document", control.HandleDocuments)
    http.ListenAndServe("localhost:4000", nil)
}

func HandleDocuments(w http.ResponseWriter,r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    w.Header().Set("Access-Control-Allow-Origin", "*")

    switch r.Method {
        case "GET": 
            //logic snipped
            testDoc := model.Document{"Meeting Notes", "These are some notes", time.Now(), "Bacon"}    
            sendResponse(testDoc, w,r)
            }
        case "POST":
        case "PUT":
        case "DELETE":
        default:
            //snipped
    }
}

理想情况下,我想发送请求并获得邮票现场发回的东西喜欢May 15, 2014和不2014-05-16T08:28:06.801064-04:00

但是我不确定如何,我知道可以添加json:stamp到文档类型声明中以使用名称戳而不是戳来编码字段,但是我不知道这些类型的东西叫什么,所以我我什至不知道该搜索什么,以了解是否还有某种格式设置选项。

是否有人链接到示例或优质文档页面上有关这些类型标记(或称为它们的名称)主题的链接,或者我如何告诉JSON编码器处理time.Time字段?

仅供参考,我查看了以下页面:这里这里,当然还有官方文档

Not_a_Golfer

您可以做的是,将time.Time包装为您自己的自定义类型,并使其实现Marshaler接口:

type Marshaler interface {
    MarshalJSON() ([]byte, error)
}

因此,您要做的是:

type JSONTime time.Time

func (t JSONTime)MarshalJSON() ([]byte, error) {
    //do your serializing here
    stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2"))
    return []byte(stamp), nil
}

并制作文件:

type Document struct {
    Name        string
    Content     string
    Stamp       JSONTime
    Author      string
}

并使您的初始化看起来像:

 testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}    

就是这样。如果您想拆封,也可以使用该Unmarshaler界面。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何格式化传出JSON中的时间戳

来自分类Dev

格式化UserSpice中的时间戳

来自分类Dev

格式化JSON API的活动记录时间戳

来自分类Dev

如何格式化Twitter(和其他)时间戳?

来自分类Dev

如何用Java格式化Twitter时间戳?

来自分类Dev

重新格式化管道分隔文件中的时间戳

来自分类Dev

如何在jboss日志记录的模式格式化程序中自定义时间戳

来自分类Dev

如何使用FFMPEG将任意格式化的时间戳添加到视频中?

来自分类Dev

格式化Stripe的时间戳

来自分类Dev

我如何要求AngularJS为时间戳格式化本地时间?

来自分类Dev

在Jade和node.js中格式化(JSON)UNIX时间戳

来自分类Dev

如何从服务器格式化此传入的时间戳字符串?

来自分类Dev

Java 8 epoch-millis时间戳到格式化日期,如何?

来自分类Dev

如何从服务器格式化此传入的时间戳字符串?

来自分类Dev

如何将对象作为时间戳转换为格式化日期

来自分类Dev

如何格式化来自unix时间戳数组的日期列表?

来自分类Dev

如何从命令行获取UNIX时间戳的格式化日期

来自分类Dev

如何格式化熊猫中的日期时间字段

来自分类Dev

如何格式化包含方法中的日期时间列

来自分类Dev

如何格式化此 Google Apps 脚本中的时间?

来自分类Dev

使用WinRT格式化本地时间戳

来自分类Dev

从格式化日期获取UTC时间戳-javascript

来自分类Dev

使用时区格式化Unix时间戳吗?

来自分类Dev

从Unix时间戳获取格式化日期

来自分类Dev

使用awk分解时间戳并对其进行格式化

来自分类Dev

psycopg 插入时间戳而不格式化

来自分类Dev

amcharts4 从 unix 时间戳格式化日期

来自分类Dev

如何停止Powershell 7 ConvertFrom-Json重新格式化时间戳?

来自分类Dev

格式化时间戳

Related 相关文章

  1. 1

    如何格式化传出JSON中的时间戳

  2. 2

    格式化UserSpice中的时间戳

  3. 3

    格式化JSON API的活动记录时间戳

  4. 4

    如何格式化Twitter(和其他)时间戳?

  5. 5

    如何用Java格式化Twitter时间戳?

  6. 6

    重新格式化管道分隔文件中的时间戳

  7. 7

    如何在jboss日志记录的模式格式化程序中自定义时间戳

  8. 8

    如何使用FFMPEG将任意格式化的时间戳添加到视频中?

  9. 9

    格式化Stripe的时间戳

  10. 10

    我如何要求AngularJS为时间戳格式化本地时间?

  11. 11

    在Jade和node.js中格式化(JSON)UNIX时间戳

  12. 12

    如何从服务器格式化此传入的时间戳字符串?

  13. 13

    Java 8 epoch-millis时间戳到格式化日期,如何?

  14. 14

    如何从服务器格式化此传入的时间戳字符串?

  15. 15

    如何将对象作为时间戳转换为格式化日期

  16. 16

    如何格式化来自unix时间戳数组的日期列表?

  17. 17

    如何从命令行获取UNIX时间戳的格式化日期

  18. 18

    如何格式化熊猫中的日期时间字段

  19. 19

    如何格式化包含方法中的日期时间列

  20. 20

    如何格式化此 Google Apps 脚本中的时间?

  21. 21

    使用WinRT格式化本地时间戳

  22. 22

    从格式化日期获取UTC时间戳-javascript

  23. 23

    使用时区格式化Unix时间戳吗?

  24. 24

    从Unix时间戳获取格式化日期

  25. 25

    使用awk分解时间戳并对其进行格式化

  26. 26

    psycopg 插入时间戳而不格式化

  27. 27

    amcharts4 从 unix 时间戳格式化日期

  28. 28

    如何停止Powershell 7 ConvertFrom-Json重新格式化时间戳?

  29. 29

    格式化时间戳

热门标签

归档