英文:
how do I decode json in a generic function
问题
在Go语言中,你可以这样实现(假设T是一个类似于C++、C#、Java等语言中的模板):
import (
"encoding/json"
"net/http"
)
func DecodeFormToJson(r *http.Request, t *T) (err error) {
decoder := json.NewDecoder(r.Body)
err = decoder.Decode(&t)
return
}
这段代码使用了Go语言的encoding/json
包来将HTTP请求的表单数据解码为JSON格式,并将结果存储到t
中。注意,T
需要是一个合适的类型,以便能够正确解码JSON数据。
英文:
How do I do something like this (assuming T is a template like in C++, C#, Java etc...) in golang:
func DecodeFormToJson(r *http.Request, t *T) err error {
decoder := json.NewDecoder(r.Body)
err = decoder.Decode(&t)
return
}
答案1
得分: 3
只需简单地使用interface{}
,这正是Decoder.Decode
使用的方式,例如:
func proxyDecode(r io.Reader, i interface{}) error {
dec := json.NewDecoder(r)
return dec.Decode(i)
}
英文:
Simply using an interface{}
which is what Decoder.Decode
uses anyway, for example:
func proxyDecode(r io.Reader, i interface{}) error {
dec := json.NewDecoder(r)
return dec.Decode(i)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论