go語言:結構體與json串的互相轉換
阿新 • • 發佈:2018-12-09
將結構體轉為json串
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
// 這裡的兩個欄位名,首字母都要大寫,否則無法轉換
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
// 建立一個結構體物件
person := Person{"小明", 18}
result, err := json.Marshal(&person)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(result))
}
執行結果:
{"name":"小明","age":18}
將json串轉為結構體
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
// 初始化一個json串
jsonStr := `{"name":"小明","age":18}`
var person Person
json.Unmarshal([]byte(jsonStr), &person)
fmt.Println(person)
// 將name和age都改為首字母大寫
jsonStr2 := `{"Name":"小明","Age":18}`
var p2 Person
json.Unmarshal([]byte(jsonStr2), &p2)
fmt.Println(p2)
}
執行結果:
{小明 18}
{小明 18}