【问题标题】:Decode spanner row fields to nested structs golang将扳手行字段解码为嵌套结构 golang
【发布时间】:2020-09-07 17:29:59
【问题描述】:

我有两个结构

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 不支持目标结构将结构作为字段,因为这不是受支持的列类型,但有什么更好的解决方法?

谢谢!

【问题讨论】:

    标签: go struct google-cloud-spanner


    【解决方案1】:

    我没有直接在谷歌云扫描仪上工作过,但是从 Go 语言的角度来看,嵌入 Structs 怎么样?

    即:

    type Row struct{
      ID string 
      Status string
      Details
    }
    
    type Details struct{
      SessionID string
      Location string
      Project string
    }
    
    r := Row{}
    spanner.row.ToStruct(&r)
    

    【讨论】:

    • 这个建议应该可行。您可以创建一个组合结构并将其传递给Row.ToStruct 方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2017-05-11
    • 2014-01-18
    相关资源
    最近更新 更多