请原谅我的问题,我是 Golang 的新手,可能有错误的方法。
我目前正在为内部服务实施 Terraform 提供程序。
正如预期的那样,这需要将 JSON 数据解组为预定义的结构类型,例如:
type SomeTypeIveDefined struct {
ID string `json:"id"`
Name String `json:"name"`
}
我让自己陷入了这样一种情况,我有很多重复的代码,看起来像这样
res := r.(*http.Response)
var tempThing SomeTypeIveDefined
dec := json.NewDecoder(res.Body)
err := dec.Decode(&tempThing)
为了减少重复,我决定我想做的是创建一个函数来进行 JSON 解组,但将 Struct Type 作为参数。
我浏览了几篇 StackOverflow 文章和 Google Groups 试图理解使用反射包的一些答案,但我在使用它方面并没有取得太大的成功。
我最近的尝试是使用reflect.StructOf并传入一组StructFields,但这似乎仍然需要使用myReflectedStruct.Field(0)而不是myReflectedStruct.ID.
我怀疑在诸如泛型之类的东西在 Golang 中广泛使用之前可能没有办法。
我考虑了可能需要实现解组方法的结构的接口,然后我可以将接口传递给函数并调用解组方法。但无论如何,我仍然在所有结构上实施解组。
我只是想知道有什么建议可以实现我所追求的,好吗?
智慧大石
慕无忌1623718
相关分类