最佳答案
我最近一直在玩围棋,它很棒。在浏览了文档和博客文章之后,我似乎无法理解的是如何让 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
}
}
理想情况下,我希望发送一个请求,并获得 Stamp 字段作为类似于 May 15, 2014
而不是 2014-05-16T08:28:06.801064-04:00
的内容返回
但是我不知道该怎么做,我知道我可以在文档类型声明中添加 json:stamp
,让字段用名称戳代替 Stamp 进行编码,但是我不知道这些类型的东西叫什么,所以我甚至不知道用 google 搜索是否也有某种格式选项。
是否有人有一个关于这些类型标记(或不管它们被称为什么)的主题的示例或好的文档页面的链接,或者关于我如何告诉 JSON 编码器处理 time.Time
字段的链接?