From 7f8fe7a0c8f1b519e9693c79cb0129fbd32e5e41 Mon Sep 17 00:00:00 2001 From: lobatt Date: Sat, 3 Nov 2018 21:09:10 +0800 Subject: [PATCH 1/2] Option to use json sub-element name as sub struct names --- json-to-struct.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/json-to-struct.go b/json-to-struct.go index 811ee71..1dc1d2e 100644 --- a/json-to-struct.go +++ b/json-to-struct.go @@ -297,7 +297,8 @@ func generateTypes(obj map[string]interface{}, structName string, tags []string, if val, ok := subStructMap[sub]; ok { subName = val } else { - subName = fmt.Sprintf("%v_sub%v", structName, len(subStructMap)+1) + //subName = fmt.Sprintf("%v_sub%v", structName, len(subStructMap)+1) + subName = strings.Title(key) subStructMap[sub] = subName } @@ -314,7 +315,8 @@ func generateTypes(obj map[string]interface{}, structName string, tags []string, if val, ok := subStructMap[sub]; ok { subName = val } else { - subName = fmt.Sprintf("%v_sub%v", structName, len(subStructMap)+1) + //subName = fmt.Sprintf("%v_sub%v", structName, len(subStructMap)+1) + subName = strings.Title(key) subStructMap[sub] = subName } @@ -328,7 +330,8 @@ func generateTypes(obj map[string]interface{}, structName string, tags []string, if val, ok := subStructMap[sub]; ok { subName = val } else { - subName = fmt.Sprintf("%v_sub%v", structName, len(subStructMap)+1) + //subName = fmt.Sprintf("%v_sub%v", structName, len(subStructMap)+1) + subName = strings.Title(key) subStructMap[sub] = subName } From 06c0ac8a3e30552ed1ce6ff91bebb2c4b8762696 Mon Sep 17 00:00:00 2001 From: lobatt Date: Sat, 3 Nov 2018 21:32:21 +0800 Subject: [PATCH 2/2] Option to use jsonpath as substruct name(w/o path separator) --- json-to-struct.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/json-to-struct.go b/json-to-struct.go index 1dc1d2e..9f41d43 100644 --- a/json-to-struct.go +++ b/json-to-struct.go @@ -298,7 +298,7 @@ func generateTypes(obj map[string]interface{}, structName string, tags []string, subName = val } else { //subName = fmt.Sprintf("%v_sub%v", structName, len(subStructMap)+1) - subName = strings.Title(key) + subName = structName + strings.Title(key) subStructMap[sub] = subName } @@ -316,7 +316,7 @@ func generateTypes(obj map[string]interface{}, structName string, tags []string, subName = val } else { //subName = fmt.Sprintf("%v_sub%v", structName, len(subStructMap)+1) - subName = strings.Title(key) + subName = structName + strings.Title(key) subStructMap[sub] = subName } @@ -331,7 +331,7 @@ func generateTypes(obj map[string]interface{}, structName string, tags []string, subName = val } else { //subName = fmt.Sprintf("%v_sub%v", structName, len(subStructMap)+1) - subName = strings.Title(key) + subName = structName + strings.Title(key) subStructMap[sub] = subName }