package main
import (
"fmt"
"encoding/json"
)
type UserInfo struct {
UsrId int64 `json:"user_id,omitempty"`
NickName string `json:"nickname"`
Address string `json:"-" `
}
func main () {
var u UserInfo = UserInfo{
NickName: "zhanglinpeng",
Address: "",
}
rl, err:= json.Marshal(u)
if err != nil {
fmt.Println("json marshal error: ", err)
}
// os.Stdout.Write(rl)
fmt.Println(string(rl))
var vlr UserInfo
err1 := json.Unmarshal(rl, &vlr)
if err != nil {
fmt.Println("json unmarshal error: ", err1)
}
fmt.Printf("%v\n", vlr)
}
Output:
{"nickname":"zhanglinpeng"}
{0 zhanglinpeng }
json:"nickname"
-
-
package main
import (
"fmt"
"encoding/json"
)
type UserInfo struct {
UsrId int64 `json:",omitempty"`
NickName string `json:"nickname"`
Address string `json:"-," `
}
func main () {
var u UserInfo = UserInfo{
NickName: "zhanglinpeng",
Address: "",
}
rl, err:= json.Marshal(u)
if err != nil {
fmt.Println("json marshal error: ", err)
}
// os.Stdout.Write(rl)
fmt.Println(string(rl))
var vlr UserInfo
err1 := json.Unmarshal(rl, &vlr)
if err != nil {
fmt.Println("json unmarshal error: ", err1)
}
fmt.Printf("%v\n", vlr)
}
Output:
{"nickname":"zhanglinpeng","-":"shanghai"}
{0 zhanglinpeng shanghai}
如果在结构体实例化中没有实例化字段就会跳过,注意omitempty前面有逗号。