增加数据类型转换
This commit is contained in:
@@ -109,6 +109,7 @@ func (t *Transform) rewrite(rule *define.FilterRule) error {
|
||||
if strings.Contains(rule.SourceDataPath, "[]") {
|
||||
return t.rewriteForSlice(rule)
|
||||
}
|
||||
// 走的默认值认为无需脱敏
|
||||
if t.result, err = sjson.Set(t.result, rule.TargetDataPath, rule.DefaultValue); nil != err {
|
||||
return err
|
||||
}
|
||||
@@ -121,6 +122,9 @@ func (t *Transform) rewrite(rule *define.FilterRule) error {
|
||||
if realValue, err = data_mask.ExecuteWithError(realValue, rule.DataMaskStrategy); nil != err {
|
||||
return err
|
||||
}
|
||||
// 一旦执行数据脱敏, 统一以字符串输出
|
||||
t.result, err = sjson.Set(t.result, rule.TargetDataPath, realValue)
|
||||
return err
|
||||
}
|
||||
// TODO : 格式转换
|
||||
t.result, err = sjson.Set(t.result, rule.TargetDataPath, sourceResult.Value())
|
||||
@@ -133,11 +137,17 @@ func (t *Transform) rewrite(rule *define.FilterRule) error {
|
||||
//
|
||||
// Date : 15:22 2024/3/27
|
||||
func (t *Transform) rewriteForSlice(rule *define.FilterRule) error {
|
||||
var (
|
||||
err error
|
||||
)
|
||||
|
||||
pathArr := strings.Split(rule.SourceDataPath, ".[].")
|
||||
sliceUnfoldResult := t.unfoldSourceSliceData(t.sourceData, pathArr[0:len(pathArr)-1], nil)
|
||||
targetArr := strings.Split(rule.TargetDataPath, ".[].")
|
||||
for idx, itemRes := range sliceUnfoldResult {
|
||||
t.result, _ = sjson.Set(t.result, fmt.Sprintf("%v.%v.%v", targetArr[0], idx, targetArr[1]), itemRes.Get(pathArr[len(pathArr)-1]).Value())
|
||||
if t.result, err = sjson.Set(t.result, fmt.Sprintf("%v.%v.%v", targetArr[0], idx, targetArr[1]), itemRes.Get(pathArr[len(pathArr)-1]).Value()); nil != err {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user