diff --git a/gjson_hack/path.go b/gjson_hack/path.go index 2a4bc38..57bf1ea 100644 --- a/gjson_hack/path.go +++ b/gjson_hack/path.go @@ -151,7 +151,7 @@ func ExpandArrayPath(jsonStr string, pathConfig string, mapConfig string, expend expendArrayResult.PathMap[pathConfig] = mapConfig return nil } - mapConfigArr := strings.Split(pathConfig, ArrayIdxTpl) + mapConfigArr := strings.Split(mapConfig, ArrayIdxTpl) mapConfigArr[0] = strings.TrimSuffix(mapConfigArr[0], ".") mapSuffixPathTpl := strings.TrimPrefix(strings.Join(mapConfigArr[1:], ArrayIdxTpl), ".") diff --git a/gjson_hack/path_test.go b/gjson_hack/path_test.go index 8bd5f64..e607098 100644 --- a/gjson_hack/path_test.go +++ b/gjson_hack/path_test.go @@ -171,8 +171,8 @@ func TestExpandArrayPath(t *testing.T) { PathMap: nil, } ExpandArrayPath(jsonStr, "user_list.{{idx}}.{{idx}}.age", "a.{{idx}}.{{idx}}.b", pathExpendRes) - ExpandArrayPath(jsonStr, "user_list.{{idx}}.{{idx}}.name", "a.{{idx}}.{{idx}}.c", pathExpendRes) - ExpandArrayPath(jsonStr, "user_list.{{idx}}.{{idx}}.sex", "a.{{idx}}.{{idx}}.c", pathExpendRes) + ExpandArrayPath(jsonStr, "user_list.{{idx}}.{{idx}}.name", "e.{{idx}}.{{idx}}.c", pathExpendRes) + ExpandArrayPath(jsonStr, "user_list.{{idx}}.{{idx}}.sex", "f.{{idx}}.{{idx}}.c", pathExpendRes) res := "" for _, item := range pathExpendRes.PathList { res, _ = sjson.Set(res, pathExpendRes.PathMap[item], gjson.Get(jsonStr, item).Value())