Golang中的json marshal可以將Go語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化成JSON格式的數(shù)據(jù)。同時(shí),也可以將JSON格式的數(shù)據(jù)轉(zhuǎn)化成Go語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)。
import "encoding/json"
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
person := Person{
Name: "Alice",
Age: 28,
}
bytes, _ := json.Marshal(person)
fmt.Println(string(bytes))
}
上面的代碼定義了一個(gè)Person結(jié)構(gòu)體,并將其轉(zhuǎn)成JSON格式的數(shù)據(jù)。通過(guò)`json:"name"`和`json:"age"`標(biāo)簽,可以為結(jié)構(gòu)體字段指定JSON的Key值。
如果需要將JSON格式的數(shù)據(jù)轉(zhuǎn)化成Go語(yǔ)言的數(shù)據(jù)結(jié)構(gòu),則可以使用`json.Unmarshal()`方法。例如:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
jsonStr := `{ "name": "Alice", "age": 28 }`
var person Person
json.Unmarshal([]byte(jsonStr), &person)
fmt.Println(person)
}
上面的代碼將一個(gè)JSON格式的字符串轉(zhuǎn)換成了Person結(jié)構(gòu)體的數(shù)據(jù)類(lèi)型。
上一篇vue border屬性
下一篇python 輸入任意鍵