update: update wrapper

This commit is contained in:
2025-10-13 17:28:57 +08:00
parent fc340b9417
commit dcf591d4e8
3 changed files with 23 additions and 9 deletions

View File

@ -1,9 +1,10 @@
package dynamicstruct
import (
"git.zhangdeman.cn/zhangdeman/wrapper"
"reflect"
"strings"
"git.zhangdeman.cn/zhangdeman/wrapper/op_string"
)
const tagTpl = `json:"{TAG_NAME}" xml:"{TAG_NAME}" toml:"{TAG_NAME}" yaml:"{TAG_NAME}" ini:"{TAG_NAME}"`
@ -88,7 +89,7 @@ func (b *builderImpl) AddField(name string, pkg string, typ any, tag string, ano
// addNormalField 添加普通无嵌套的字段
func (b *builderImpl) addNormalField(name string, pkg string, typ any, tag string, anonymous bool) {
name = wrapper.String(name).SnakeCaseToCamel()
name = op_string.SnakeCaseToCamel(name)
if existFieldCfg := b.GetField(name); nil != existFieldCfg {
// 说明已存在指定名称字段
// 重复添加, 则会议后面的标签以及类型, 覆盖前面的值
@ -118,10 +119,10 @@ func (b *builderImpl) addNestedField(nameArr []string, pkg string, typ any, tag
}
for i := len(nameArr) - 1; i > 0; i-- {
jsonTag := nameArr[i]
fieldName := wrapper.String(jsonTag).SnakeCaseToCamel()
fieldName := op_string.SnakeCaseToCamel(jsonTag)
parentName := strings.Join(nameArr[:i], ".")
parentJsonTag := nameArr[i-1]
parentFieldName := wrapper.String(parentJsonTag).SnakeCaseToCamel()
parentFieldName := op_string.SnakeCaseToCamel(parentJsonTag)
// fieldTag := fmt.Sprintf(`json:"%s"`, parentJsonTag)
fieldTag := strings.ReplaceAll(tagTpl, "{TAG_NAME}", parentJsonTag)
if tagCfg, exist := b.structTagTable[parentName]; exist && len(tagCfg) > 0 {