###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"}