将扳手行字段解码为嵌套结构golang

时间:2020-09-07 17:29:59

标签: go struct google-cloud-spanner

我有两个结构

type Row struct{
  ID string 
  Status string
  details Details
}

type Details struct{
  SessionID string
  Location string
  Project string
}

我得到这样的数据

Select a.ID, a.Status, b.SessionID, b.Location, b.Project from table1 as a left join table2 as b on a.ID == b.SessionID

现在,要获取一行中的所有选择信息,我需要更改结构并在其中添加字段,而不是struct(Details),后者实际上是在Row和Details中复制字段(我出于其他目的需要好)。

type Row struct{
  ID string 
  Status string
  SessionID string
  Location string
  Project string
}

r := Row{}
spanner.row.ToStruct(&r) // this works

但是有一种简化的方法来获取数据,而不必复制结构中的字段或在spanner.row.Column中指定每个字段吗?我读到spanner.row.ToStruct不支持目标结构体将结构体作为字段,因为这不是受支持的列类型,但是有什么更好的解决方法?

谢谢!

1 个答案:

答案 0 :(得分:2)

我不是直接在Google云扫描仪上工作,而是从Go语言的角度来看,如何嵌入结构?

即:

type Row struct{
  ID string 
  Status string
  Details
}

type Details struct{
  SessionID string
  Location string
  Project string
}

r := Row{}
spanner.row.ToStruct(&r)