Mysql 无法将包含json对象列表的字符串类型的db字段结构扫描到Golang结构中

Mysql 无法将包含json对象列表的字符串类型的db字段结构扫描到Golang结构中,mysql,json,go,struct,sqlx,Mysql,Json,Go,Struct,Sqlx,我正在编写一个go程序,从mysql数据库读取值,并使用rows.StructScan将其解组到go结构中。但其中一个字段返回一个包含json对象列表的字符串。如果sqlx返回[]字节的db结果,StructScan应该能够将细节字符串解组到细节结构中,但会给出以下错误:name“details”:不支持的扫描,将driver.Value类型[]uint8存储到类型*[]main.details 导入( _“github.com/go-sql-driver/mysql” “github.com

我正在编写一个go程序,从mysql数据库读取值,并使用rows.StructScan将其解组到go结构中。但其中一个字段返回一个包含json对象列表的字符串。如果sqlx返回[]字节的db结果,StructScan应该能够将细节字符串解组到细节结构中,但会给出以下错误:name“details”:不支持的扫描,将driver.Value类型[]uint8存储到类型*[]main.details

导入(
_“github.com/go-sql-driver/mysql”
“github.com/jmoiron/sqlx”
“github.com/jmoiron/sqlx/reflectx”
“编码/json”
)
类型实体结构{
ID int`db:“ID”`
日期*int`db:“日期”`
详细信息[]详细信息`db:“详细信息”`
}
类型详细信息结构{
Name*string`json:“Name”`
Description*string`json:“Description”`
代码字符串`json:“代码”`
}
//现在已删除错误处理
dataQuery,args,err:=sqlx.In(数据查询,ID)
行,err:=db.Queryx(数据查询,参数…)
entityList:=[]*实体{}
// 1. 不起作用
对于行。下一个(){
实体:=&实体{}
错误:=行。结构扫描(&entity)
entityList=追加(entityList,entity)
}
// 2. 作品
对于行。下一个(){
实体:=&实体{}
变量描述字符串
错误:=行.扫描(&entity.ID,&entity.Date,&desc)
err=json.Unmarshal([]字节(desc),&entity.Details)
entityList=追加(entityList,entity)
}
//数据库查询结果:
身份证号码:15
日期:1590177397603
详细信息:[{“名称”:“Abc”,“说明”:“字符串”,“代码”:“CO1”},

{“name”:“123”,“description”:“Numbers”,“code”:“CO2”}]
对于类型为JSON的列,结构字段的类型应为[]byte,没有其他方法可以解决此问题

在本例中,我将使用mapscan()方法,在扫描之后,我将通过将特定键传递给一个函数来处理该键,该函数将[]字节解组到特定的结构或映射

如果仍然希望结果是struct,请使用一些库将映射转换为struct。