草庐IT

类结构

全部标签

json - 在 go 中解码 JSON 结构制作空 map

这个问题在这里已经有了答案:PrintingEmptyJsonasaresult[duplicate](1个回答)关闭9个月前。我有一个json文件,其中包含大量数据:{"elec":{"s20":{"coldS":{"wDay":{"Night":{"avg":1234,"stddev":56},"Morning":{"avg":5432,"stddev":10}...},...},...},...}我想将这个文件加载为一个go结构:typeConsumConfigstruct{elecmap[string]map[string]map[string]map[string]Consu

go - 使用来自其父级的方法更改嵌入式结构的属性

我必须定期调用父结构的方法,但在调用时,它必须更新嵌入式结构特有的扩展属性(在我的例子中,结构具有不同的id数据类型)。我能想到的唯一解决方案是覆盖父结构的a方法,以便在再次调用周期性方法时,它使用嵌入结构的方法而不是父结构的原始方法。代码如下:packagemainimport("fmt")typeFruitstruct{image*Imagetree*TreeSetImagefunc(*Image)SetTreefunc(*Tree)//#2(alwaysnilforStrawberry)}funcNewFruit()*Fruit{f:=&Fruit{}f.SetImage=f.s

json - golang 结构仅从 json 中部分解码

我正在尝试将json转换为golang嵌套结构。它只是部分工作。大多数字段都不能正确解析,尽管有些可以。为什么不将来自json的所有数据都转换为golang结构?我的猜测是我的json格式和golang结构之间有一些错误,但我没有看到它。发帖让其他人关注这个问题。当我运行程序时,机器ip地址被解码,但测试运行id却没有。这是我的主要方法的输出:testrunid:machineip:172.25.148.39这是我的golang代码:packagemainimport("encoding/json""bytes""io/ioutil""runtime""log")funcmain(){

json - 如何在 GO 中初始化嵌套 json 结构中的值?

这个问题在这里已经有了答案:Initializenestedstructdefinition(3个答案)关闭5年前。我现在有这个结构typeServiceStructstruct{Namestring`json:"name"`DataStructstruct{IDstring`json:"id"`Sizestring`json:"size"`}}但我不确定如何为这个结构内的元素赋值。特别是ServiceStruct中的DataStruct

go - 如何使结构接受两种类型之一作为参数?

我有一个结构DbConnector,我想将其用作与数据库通信的代理。这个结构有方法Init(db*sql.DB)。根据条件,我希望能够使用另一个结构初始化它,例如用于测试的DummyDatabaseConnection。如何定义Init()的签名,以便它接受*sql.DB或*DummyDatabaseConnection? 最佳答案 定义一个接口(interface),其中包含一些您需要为*sql.DB和*DummyDatabaseConnection调用的方法typeDBInterfaceinterface{Ping()error

go - Go 语言中的动态嵌套结构

我正在学习golang,想从微服务响应中编写通用响应。我的一般回复是这样的:typeGeneralResponsestruct{SuccessstringMessagestringDatastringErrorstring}在Data部分,我想返回任何json,比如Person、Instruments或任何类型的对象列表。不过应该​​是另外一个json。我尝试分配其他json对象,但没有用。如果我将json数组作为字符串转储到其中很好,但它应该从接收端解码。我该怎么办?我正在这边试试。https://play.golang.org/p/dc0uKtS76aA

go - 在 "for {select }"结构中添加一个简单的 fmt.Println 后,CPU 使用率有很大不同,为什么?

遇到困惑的情况:假设我们有一个用Go编写的for{select}函数。下面是代码:packagemain//import"fmt"funcmain(){for{select{default:_=11.firstsituation//fmt.Sprint("aa")2.secondsituation}}}而在第一种情况下,杯子的使用情况如下所示:在第二种情况下,CPU使用情况如下所示:我猜fmt.Println中发生了一些事情。可能跟Go的fmt实现机制有关?不太清楚使用所有CPU是如何发生的?提前致谢! 最佳答案 我的猜测:在第一个

go - 用结构方法反射(reflect)结构

我正在玩弄反射,我正在尝试反射一个结构,创建一个新结构并尝试调用它。变量工作正常,但是当我反射一个新结构时,结构方法没有被复制?我在Playground上创建了一个简单的示例。在第34行,我收到0个方法存在,但应该有1个(SetName)。难道我做错了什么?几个小时以来就已经在谷歌上搜索了,但没有得到任何解决方案。https://play.golang.org/p/yArjVLtWEaG提前致谢欢呼拍拍 最佳答案 SetName不是company类型的方法,而是*company类型的方法。所以你必须创建一个指向公司的指针。

json - 如何解析 Unmarshaled 结构中的引用

我有两个在Go中解码的json文件。第一个包含某种类型的对象,该对象由第二组中的ID引用。//Foo{"id":5,"key":"value"}和//Bar{"name":"bar","fooReferenceId":5}我想以struct结束typeBarstruct{NamestringFoo*Foo}有没有一种方法可以直接实现这一点,类似于我们提供json:"..."key解析器的方式?有点像typeBarstruct{Namestring`json:"name"`Foo*FooresolveFooById(`json:"fooReferenceId"`)}

go - 如何解析json数组结构

我使用下面的代码没有成功解析json值,但是它的内部数组[]https://play.golang.org/p/5HdWeyEtviepackagemainimport("encoding/json""fmt")varinput=`[{"created_at":"ThuMay3100:00:01+00002012"},{"created_at":"ThuMay3100:00:01+00002012"}]`funcmain(){varvalmap[string]interface{}iferr:=json.Unmarshal([]byte(input),&val);err!=nil{pa