// Package json_tool... // // Description : json_tool... // // Author : go_developer@163.com<白茶清欢> // // Date : 2021-03-10 11:44 下午 package json_tool import ( "fmt" "testing" ) // TestJSON ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:58 下午 2021/3/14 func TestJSON(t *testing.T) { tree := NewDynamicJSON() fmt.Println(tree.extraSliceIndex("[200]")) tree.SetValue("extra.height.value", 180, false) tree.SetValue("extra.height.unit.use", "cm", false) tree.SetValue("extra.height.unit.open", "1", false) tree.SetValue("name", "zhangdeman", false) tree.SetValue("good.name", "good", false) tree.SetValue("work", "111", false) tree.SetValue("good.price", "180", false) tree.SetValue("good.unit", "$", false) tree.SetValue("slice.[0].name", "zhang", false) tree.SetValue("slice.[0].age", 30, false) tree.SetValue("slice.[1].name", "de", false) tree.SetValue("slice.[2].name", "man", false) tree.SetValue("slice.[3]", "zhangdeman", false) fmt.Println(tree.String()) tree = NewDynamicJSON() tree.SetValue("[0]", "zhang", false) tree.SetValue("[1]", "de", false) tree.SetValue("[2]", "man", false) fmt.Println(tree.String()) } // TestType 判断数据类型断言 // // Author : go_developer@163.com<白茶清欢> // // Date : 10:59 下午 2021/3/14 func TestType(t *testing.T) { } // TestSelect 测试动态选择字段 // // Author : go_developer@163.com<白茶清欢> // // Date : 9:47 下午 2021/4/13 func TestSelect(t *testing.T) { source := map[string]interface{}{ "name": "zhangdeman", "extra": map[string]interface{}{ "age": 18, "height": 180, "slice": []int{1, 2, 3}, }, "slice": []int{1, 2, 3}, "map": map[string]interface{}{"a": 1, "b": 2, "c": 4}, "table": []map[string]interface{}{ {"name": "alex", "age": 18, "number": 1}, {"name": "bob", "age": 28, "number": 2}, }, } rule := map[string]string{ "name": "user_name", "extra.age": "user_age", "extra.height": "user_height", "table.[].name": "slice.[].name", } filter := NewFilter(source, rule) d, e := filter.Result() if nil != e { fmt.Println(e) return } fmt.Println(d.String()) }