真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Go語(yǔ)言的JSON輸入(解碼)(反序列化)之struct存儲(chǔ)

// code_031_json_unmarshal project main.go
package main

import (
    "encoding/json"
    "fmt"
)

//可以使用json.Unmarshal()函數(shù)將JSON格式的文本解碼為Go里面預(yù)期的數(shù)據(jù)結(jié)構(gòu)。
//json.Unmarshal()函數(shù)的原型如下:
//    func Unmarshal(data []byte, v interface{}) error
//      該函數(shù)的第一個(gè)參數(shù)是輸入,即JSON格式的文本(比特序列)
//      第二個(gè)參數(shù)表示目標(biāo)輸出容器,用于存放解碼后的值。
type IT struct {
    Company string   `json:"company"`
    Subject []string `json:"subjects"`
    IsOk    bool     `json:"isok"`
    Price   float64  `json:"price"`
}

func main() {
    //第一:反序列化,完整字段。
    // b為從前端接收的數(shù)據(jù)
    b := []byte(`{
    "company":"alibaba",
     "subjects":[
        "Go",
        "C++",
        "Python",
        "Test"
    ],
    "isok":true,
    "price":666.666
    }`)

    var t IT                     //聲明目標(biāo)輸出容器,用于存放解碼后的值
    err := json.Unmarshal(b, &t) //調(diào)用函數(shù),并傳遞兩個(gè)參數(shù):JSON的比特序列,目標(biāo)輸出的容器
    if err != nil {
        fmt.Println("json err:", err)
    }
    fmt.Println(t)

    //第二種:反序列化部分字段,如:Subjects字段。
    type IT2 struct {
        Subjects []string `json:"subjects"`
    }
    var t2 IT2
    err1 := json.Unmarshal(b, &t2)
    if err1 != nil {
        fmt.Println("json err:", err)
    }
    fmt.Println(t2)
}

文章題目:Go語(yǔ)言的JSON輸入(解碼)(反序列化)之struct存儲(chǔ)
本文URL:http://weahome.cn/article/jhhjcs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部