package main import ( "dsTools/Utils/FileUtil" "fmt" //这个库是目前我接触到最好用的json库!强烈推荐! "github.com/tidwall/gjson" ) var map1 = make(map[string]string) var map2 = make(map[string]string) func main() { var indexName = "twitter" var path = "mappings.properties" var backupPath = "./MappingBackupJson/" var createPath = "./MappingCreateJson/" json1 := FileUtil.ReadFileContent(backupPath + indexName + ".json") value1 := gjson.Get(json1, path) value1.ForEach(printKeyValue1()) json2 := FileUtil.ReadFileContent(createPath + indexName + ".json") value2 := gjson.Get(json2, path) value2.ForEach(printKeyValue2()) //获取2比1多的字段,生成可以增加字段的mapping for k, v := range map2 { //如果存在,表示不需要增加 if _, ok := map1[k]; ok { //存在,就算是字段类型不一样,也无法变更,只能提供一下。 } else { fmt.Println(k, v) fmt.Println(fmt.Sprintf("发现新增字段%s,已成功增加!\n", k)) } } } func printKeyValue1() func(key gjson.Result, value gjson.Result) bool { return func(key, value gjson.Result) bool { map1[key.String()] = value.String() return true } } func printKeyValue2() func(key gjson.Result, value gjson.Result) bool { return func(key, value gjson.Result) bool { map2[key.String()] = value.String() return true } }