已知问题修复 #7
| @ -1,12 +1,13 @@ | ||||
| package dynamicstruct | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"git.zhangdeman.cn/zhangdeman/wrapper" | ||||
| 	"reflect" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| const tagTpl = `json:"{TAG_NAME}" xml:"{TAG_NAME}" toml:"{TAG_NAME}" yaml:"{TAG_NAME}" ini:"{TAG_NAME}"` | ||||
|  | ||||
| type nestedStruct struct { | ||||
| 	Field   string | ||||
| 	Builder IBuilder | ||||
| @ -69,7 +70,7 @@ func (b *builderImpl) AddField(name string, pkg string, typ any, tag string, ano | ||||
| 		if len(tag) == 0 { | ||||
| 			arr := strings.Split(strings.TrimSuffix(name, ".[]"), ".") | ||||
| 			// 没指定tag, 字段名称作为tag名称 | ||||
| 			tag = strings.ReplaceAll(`json:"{TAG_NAME}" xml:"{TAG_NAME}" toml:"{TAG_NAME}" yaml:"{TAG_NAME}" ini:"{TAG_NAME}"`, "{TAG_NAME}", arr[len(arr)-1]) | ||||
| 			tag = strings.ReplaceAll(tagTpl, "{TAG_NAME}", arr[len(arr)-1]) | ||||
| 			// tag = fmt.Sprintf(`json:"%s"`, name) | ||||
| 		} | ||||
| 	} | ||||
| @ -121,7 +122,8 @@ func (b *builderImpl) addNestedField(nameArr []string, pkg string, typ any, tag | ||||
| 		parentName := strings.Join(nameArr[:i], ".") | ||||
| 		parentJsonTag := nameArr[i-1] | ||||
| 		parentFieldName := wrapper.String(parentJsonTag).SnakeCaseToCamel() | ||||
| 		fieldTag := fmt.Sprintf(`json:"%s"`, parentJsonTag) | ||||
| 		// fieldTag := fmt.Sprintf(`json:"%s"`, parentJsonTag) | ||||
| 		fieldTag := strings.ReplaceAll(tagTpl, "{TAG_NAME}", parentJsonTag) | ||||
| 		if tagCfg, exist := b.structTagTable[parentName]; exist && len(tagCfg) > 0 { | ||||
| 			fieldTag = tagCfg | ||||
| 		} | ||||
|  | ||||
		Reference in New Issue
	
	Block a user