JSON,越来越流行,适合存储多维的数据结构。MySQL,PostgreSQL,Sqlite等,都对JSON有很好的支持。
在Golang编程语言里面,有这么一个强大的数据库工具,GORM,非常热门。他是一个数据库访问中间件。ORM,又叫做: (对象关系映射)是一种技术,通过使用描述对象和数据库之间映射的元数据,实现将程序中的对象自动持久化到关系数据库中
. 这技术将数据库表映射成类,记录映射成对象,字段映射成对象属性,使开发者能够通过面向对象的方式操作数据库,提高开发效率、减少错误、增加代码可读性。然而,ORM也存在一些缺点,如不适合复杂的数据库操作、学习成本较高等。
介绍了背景,我们再来谈GORM对json的支持。你当然可以自己手动定义json 的model类文件。
但是gorm自带的gen工具,其实已经很方便的支持了JSON 数据类型的生成。
根据官方最新的文档更新,加上的这个介绍,我们可以如下操作:
// Generate struct `Customer` based on table `customer` and generating options// customer table may have a tags column, it can be JSON type, gorm/gen tool can generate for your JSON data typeg.GenerateModel("customer", gen.FieldType("tags", "datatypes.JSON")),
示例的意思是,比如我们有个表,叫customer, 它具有一个字段,叫tags,tags是一个数组
比如JSON可以表示为:['标签1', '标签2']
你在gen工具的定义里面,加上这一行,指定tags的类型为datatypes.JSON
然后生成之后,就会自动把相关的数据类型自动加上,并实现查询调用。
所以有需要的同学可以尝试一下。能自动生产代码,就不用苦哈哈自己手写代码,利用已有的工具,大大提升生产力。何乐而不为呢?