程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Golang 动态解组 JSON大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Golang 动态解组 JSON?

开发过程中遇到Golang 动态解组 JSON的问题如何解决?下面主要结合日常开发的经验,给出你关于Golang 动态解组 JSON的解决方法建议,希望对你解决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,它对 ChargedItemgetChargedItemsquery 进行操作。我意识到我可以只为 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,请注明来意。
标签:动态解组