在golang中,將數據轉化為json數組并進行傳輸或存儲是常見的操作。golang內置了json庫,可以輕松地將go中的數據類型轉換成json格式,如下所示:
import ( "encoding/json" "fmt" ) type Person struct { Name string Age int } func main() { p1 := Person{Name: "Alice", Age: 25} p2 := Person{Name: "Bob", Age: 35} people := []Person{p1, p2} // 將結構體切片轉換為json字節數組 jsonData, err := json.Marshal(people) if err != nil { fmt.Println(err) } fmt.Println(string(jsonData)) // 輸出:[{"Name":"Alice","Age":25},{"Name":"Bob","Age":35}] }
在上面的代碼中,我們定義了一個Person類型的結構體,并創建了兩個Person實例。我們將這兩個實例添加到一個Person切片中,并調用json.Marshal()函數將切片轉換為json字節數組。如果轉換成功,我們最后將json字節數組轉換為字符串并輸出。
如果你需要將json數組轉換為go對象,可以使用json.Unmarshal()函數。
type Person struct { Name string Age int } func main() { jsonData := `[{"Name":"Alice","Age":25},{"Name":"Bob","Age":35}]` var people []Person // 將json字節數組轉換為結構體切片 err := json.Unmarshal([]byte(jsonData), &people) if err != nil { fmt.Println(err) } fmt.Println(people) // 輸出:[{Alice 25} {Bob 35}] }
在上面的代碼中,我們定義了一個Person類型的結構體,并將json數據存儲在一個字符串變量中。我們創建了一個空的Person切片,并調用json.Unmarshal()函數將json字節數組轉換為Person切片。如果轉換成功,我們最后將打印出Person切片。
這就是使用golang將數據轉換為json數組和json數組轉換為go對象的簡單方法。