大佬教程收集整理的这篇文章主要介绍了Golang 动态解组 JSON,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在 Go 中,给定以下函数,是否可以在运行时不知道 JsonString
的类型的情况下解组 c
?
func findChargedItems(fs financialservice,conditions []String) ([]*models.ChargedItem,error) {
var JsonResult []String
f := getChargedItemsquery(conditions)
q,_,_ := f.Tosql()
err := fs.db.SELEct(&JsonResult,q)
if err != nil {
return nil,err
}
JsonString := fmt.Sprintf("[%v]",Strings.Join(JsonResult,","))
c := make([]*models.ChargedItem,0)
err = Json.Unmarshal([]byte(JsonString),&C)
if err != nil {
return nil,err
}
return c,nil
}
问题是我有大量模型需要执行这个确切的过程,我正在重复自己以实现这一目标。我只想拥有一个“通用”函数 findEntitIEs
,它对 ChargedItem
和 getChargedItemsquery
进行操作。我意识到我可以只为 getChargeditemsquery
传递一个函数,这样就可以解决这个问题,但是我遇到了 Json.Unmarshal
的问题,例如,当我尝试使用接口时,Json 字段没有正确映射。有没有办法在不影响数据模型的情况下实现我想要做的事情?
我不确定您要做什么,但这可能不是一个好主意。在任何 率,这应该做你想要的:
package main
import (
"encoding/json"
"fmt"
)
func main() {
// do what youre trying to do
var (
a = []byte("[10,11]")
b []interface{}
)
json.Unmarshal(a,&b)
// then fix it later
c := make([]float64,len(b))
for n := range c {
c[n] = b[n].(float64)
}
fmt.Println(C)
}
以上是大佬教程为你收集整理的Golang 动态解组 JSON全部内容,希望文章能够帮你解决Golang 动态解组 JSON所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。