色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

golang json操作

在golang中,我們可以方便地操作json數(shù)據(jù)格式。Golang內(nèi)置了encoding/json包,可以將json字符串轉(zhuǎn)換為結(jié)構(gòu)化的數(shù)據(jù),也可以將golang中的結(jié)構(gòu)體數(shù)據(jù)轉(zhuǎn)換為json字符串。下面我們將詳細(xì)介紹golang中的json操作。

1. 解析json字符串

package main
import (
	"encoding/json"
	"fmt"
)
type Person struct {
	Name string `json:"name"`
	Age int `json:"age"`
}
func main() {
	jsonStr := `{"name": "Tom", "age": 18}`
	var person Person
	err := json.Unmarshal([]byte(jsonStr), &person)
	if err != nil {
fmt.Println(err)
	}
	fmt.Println(person)
}

2. 生成json字符串

package main
import (
	"encoding/json"
	"fmt"
)
type Person struct {
	Name string `json:"name"`
	Age int `json:"age"`
}
func main() {
	person := Person{
Name: "Tom",
Age: 18,
	}
	jsonStr, err := json.Marshal(person)
	if err != nil {
fmt.Println(err)
	}
	fmt.Println(string(jsonStr))
}

3. 修改json數(shù)據(jù)

package main
import (
	"encoding/json"
	"fmt"
)
type Person struct {
	Name string `json:"name"`
	Age int `json:"age"`
}
func main() {
	jsonStr := `{"name": "Tom", "age": 18}`
	var person Person
	err := json.Unmarshal([]byte(jsonStr), &person)
	if err != nil {
fmt.Println(err)
	}
	person.Name = "Jerry"
	person.Age = 20
	newJsonStr, err := json.Marshal(person)
	if err != nil {
fmt.Println(err)
	}
	fmt.Println(string(newJsonStr))
}

4. 處理復(fù)雜的json數(shù)據(jù)

package main
import (
	"encoding/json"
	"fmt"
)
type Address struct {
	Province string `json:"province"`
	City string `json:"city"`
}
type Person struct {
	Name string `json:"name"`
	Age int `json:"age"`
	Address Address `json:"address"`
}
func main() {
	jsonStr := `{"name": "Tom", "age": 18, "address": {"province": "Guangdong", "city": "Shenzhen"}}`
	var person Person
	err := json.Unmarshal([]byte(jsonStr), &person)
	if err != nil {
fmt.Println(err)
	}
	fmt.Println(person.Name)
	fmt.Println(person.Address.Province)
	fmt.Println(person.Address.City)
}

以上是golang中json操作的簡要介紹,希望對您有幫助。