Go开发中结构体 model、dto 、time格式问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go开发中结构体 model、dto 、time格式问题相关的知识,希望对你有一定的参考价值。

参考技术A model层不允许使用 json, dto层又重复造轮子,一个表的字段可能20个左右,那么赋值语句难受死了。

其次就是json直接解析,model层的time.Time,完蛋格式不对,返回的数据不对。

比如

这种情况,无法解决,就需要必须重写一个dto。

那么如何解决这个问题呢,本人思考了一段时间,最终使用Map来解决。

那么反射会遇到,各种奇葩的书写方式,有些人什么都出传入指针,有些人各种interface 隐藏转换,反正就是太过于差异化。

所以就是需要解决,如何准确的拿到Value对象,下面是我写的一个工具类

解决这个问题,开干

下划线如何解决,结构体的字段属于驼峰命名法,怎么解决呢?

写了一个简单的工具类

问题:1、如果是 ID ,连续大写,输出 i_d

2、因为数组到切片需要拷贝一次,所以可以利用unsafe解决,因为字符串底层就是切片,但是不安全

1、解决time的问题

2、反射、下划线命名法

输出结果:

完美,美中不足是需要使用likedMap,由于Golang源码包没有,所以,注定乱序

以上是关于Go开发中结构体 model、dto 、time格式问题的主要内容,如果未能解决你的问题,请参考以下文章

GO语言为结构体排序

AutoMapper完成Dto与Model的转换

每个 gopher 都需要了解的 Go AST

每个 gopher 都需要了解的 Go AST

使用AutoMapper实现Dto和Model的自由转换(上)

从零开发区块链应用--结构体初识