代码优化

This commit is contained in:
白茶清欢 2021-09-10 18:05:49 +08:00
parent c92a8516d4
commit 014534d546

View File

@ -58,9 +58,8 @@ func (f *Filter) Result() (*DynamicJSON, error) {
// 为数组的处理
pathArr := strings.Split(extraDataPath, ".[].")
val := gjson.Get(source, pathArr[0])
isComplexType := val.IsArray() || val.IsObject()
if len(pathArr) == 1 {
result.SetValue(newDataPath, val.Value(), isComplexType)
f.SetValue(result, newDataPath, val.Value(), false, 0)
continue
}
// 支持list再抽取一层,处于性能考虑,这么限制,不做递归无限深度处理
@ -79,6 +78,18 @@ func (f *Filter) Result() (*DynamicJSON, error) {
return result, nil
}
// SetValue 设置值
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:14 下午 2021/9/10
func (f *Filter) SetValue(result *DynamicJSON, path string, val interface{}, isSetSlice bool, sliceIndex int) {
if !isSetSlice {
result.SetValue(path, val, false)
return
}
}
// isLegalData 判断是否能转换成json结构, 只有slice/map/struct/能转换成slice或map的[]byte是合法的
//
// Author : go_developer@163.com<白茶清欢>