Skip to content

Squash cannot control the behavior of decoder.Map #15

Description

@jinsuojinsuo
func main() {
	type Config struct {
		Addr string
		Port int
	}
	type ColorGroup struct {
		ID     int      `db:"id"`
		Name   string   `db:"name"`
		Colors []string `db:"colors"`
		Config `db:"config"`
	}
	group := ColorGroup{
		ID:     0,
		Name:   "222",
		Colors: []string{"33", "34", "35", "36", "37", "38", "39", "40"},
		Config: Config{
			Addr: "127.0.0.1",
			Port: 0,
		},
	}

	//struct转map
	decoder := struct2.Decoder{
		TagName: "db", //tag
		//将匿名嵌套结构的字段提到父结构中,encoding/json也是这么处理的 ,
		//squash控制不了decoder.Map函数,针对当前示例 Map后Config总是独立字段
		//只能控制 decoder.Decode函数
		Squash: true,
	}
	result := decoder.Map(group)
	fmt.Println(result)

	group2 := ColorGroup{}
	if err := decoder.Decode(result, &group2); err != nil {
		panic(err)
	}
	fmt.Println(group2)

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions