jinzhu / copier

Copier for golang, copy value from struct to struct and more
MIT License
5.58k stars 489 forks source link

无法复制某些字段 #129

Closed tangqiu0205 closed 2 years ago

tangqiu0205 commented 2 years ago

Your Question

源:

image

目标:

image

结果:

image

Id没有正确复制进去. 另外如何把time.Time 复制时转换为timestamppb.Timestamp

Expected answer

pupilji commented 2 years ago
  1. 没有复制成功的原因应该是: AlbumAlbumParamChildIdAlbumAlbumsChildID 字段名不同。 可以参考 usage 中的 EmployeCode 字段
  2. 类型转换可以参考 usage DoubleAge 字段,在一个 func 中转换类型
tangqiu0205 commented 2 years ago

1: 结构体加了copier tag, 可以正常复制, 我有个小疑惑, 复制字段不是通过json这个tag 匹配的吗 2:如果是两个同名字段但类型不一致, 似乎不能使用 func DoubleAge 这种形式.

pupilji commented 2 years ago

@ZhangHu1225

  1. 我理解 json 这个 tag 是用来解析 json 的,现在你需要用 copier.Copy() ,所以肯定需要用 copier 规定的 tag
  2. 可以看到 usage 中的 EmployeCode 字段,它和 fromto 中对应字段名是不同的,你也可以试下用一个与这个名字不同名的方法转换,用 copier 的 tag 让复制走这个方法
zedisdog commented 1 year ago

这里有个问题 A是grpc的结构体(自动生成的) B是gorm的结构体(自动生成的) 当是这样一种情况的时候 而我又不想改生成的代码 就比较尴尬了