8000 GitHub - EricWJP/jsonx: 支持多标签结构体 marshal unmarshal
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

EricWJP/jsonx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

###jsonx 基于golang内置包encoding/json 进行扩展的,支持多标签

####示例:

func main() {
	jx := &Jsonx{"aa", "bb", "cc"}
	bts, err := jsonx.Marshal(jx) // 默认json
	if err != nil {
		fmt.Println("jsonx marshal Err! tag: json", err)
	}
	fmt.Println("jx: tag: json, bts: ", string(bts))
	var jx1 Jsonx
	err = jsonx.Unmarshal(bts, &jx1, "target")
	if err != nil {
		fmt.Println("json unmarshal Err! tag: json")
	}
	fmt.Printf("jx1: tag: target: %#v\n", jx1)
	bts, err = jsonx.Marshal(jx, "target")
	if err != nil {
		fmt.Println("json marshal Err! tag: target")
	}
	fmt.Println("jx: tag: target, bts: ", string(bts))
	var jx2 Jsonx
	err = jsonx.Unmarshal(bts, &jx2, "target")
	if err != nil {
		fmt.Println("json unmarshal Err! tag: target")
	}
	fmt.Printf("jx2: tag: target: %#v\n", jx2)
}

// Jsonx 结构
type Jsonx struct {
	A string `json:"jsonA" target:"targetA" source:"sourceA"                         `
	B string `json:"jsonB" target:"targetB" source:"sourceB"                      `
	C string `json:"jsonC" target:"targetC" source:"sourceC"                         `
}

####输出:

jx: tag: json, bts:  {"jsonA":"aa","jsonB":"bb","jsonC":"cc"}
jx1: tag: target: main.Jsonx{A:"", B:"", C:""}
jx: tag: target, bts:  {"targetA":"aa","targetB":"bb","targetC":"cc"}
jx2: tag: target: main.Jsonx{A:"aa", B:"bb", C:"cc"}

About

支持多标签结构体 marshal unmarshal

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0