在現代web應用程序中,JSON(JavaScript Object Notation)是一種常用的數據格式。在Go語言中,Go自帶的encoding / json庫提供了json解析功能。通過這篇文章,我們將了解如何在Go中解析JSON數據。
import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` // 使用tag定義JSON中的字段名 Age int `json:"age"` Address string `json:"address,omitempty"` //忽略 Address 字段的值為空的情況 } func main() { // 定義JSON字符串 jsonStr := `{ "name": "John", "age": 25 }` // 解析JSON字符串為struct類型 var person Person err := json.Unmarshal([]byte(jsonStr), &person) if err != nil { fmt.Println("解析JSON字符串失敗:", err) return } fmt.Println(person.Name) // Output: John fmt.Println(person.Age) // Output: 25 // 將結構體編碼為JSON字符串 person.Address = "China" jsonByte, err := json.Marshal(person) if err != nil { fmt.Println("生成JSON字符串失?。?, err) return } fmt.Println(string(jsonByte)) // Output: {"name":"John","age":25,"address":"China"} }
在上面的例子中,我們首先定義了一個名為Person的結構體,該結構體中定義了Name,Age和Address三個字段。然后,我們定義了一個JSON字符串,該字符串將被解析為Person結構體類型。
接著我們使用json.UnMarshal()函數將JSON字符串解析為結構體類型。 如果解析成功,則person變量將包含解析后的JSON數據。 可以通過person.Name和person.Age訪問解析結果。 最后,我們將Person結構體再次編碼為JSON字符串,并使用fmt.Println()將結果打印在控制臺上。
總之,通過encoding / json包,Go語言提供了一種簡單有效的方式來解析和生成JSON數據。