1. 程式人生 > >go語言:結構體與json串的互相轉換

go語言:結構體與json串的互相轉換

將結構體轉為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}