91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go的json輸出(序列化)

發布時間:2020-10-17 13:13:07 來源:網絡 閱讀:2352 作者:ck_god 欄目:編程語言
// code_030_JSON_key_value project main.go
package main

import (
    "encoding/json"
    "fmt"
)

//Go語言內建對JSON的支持。
//使用Go語言內置的encoding/json 標準庫,開發者可以輕松使用Go程序生成和解析JSON格式的數據

type IT struct {
    Company  string
    Subjects []string
    IsOk     bool
    Price    float64
}

type University struct {
    //ID         int      //所學專業的ID
    Name string `json:"-"` //大學名稱
    //Department string   //系
    //Major      string   //專業
    //SchoolYear int      //學年
    IsFullTime bool     `json:"isFullTime,string"` //是否全日制
    Subjects   []string `json:"subjects"`          //主要學科
    Tuition    float64  `json:"price, omitempty"`  //學費
}

func main() {

    //JSON的輸出(編碼)
    //案例1:json.Marshal的使用
    t1 := IT{"tencent", []string{"develop", "unittest", "production", "operative"}, false, 12000.0}
    b, err := json.Marshal(t1)
    if err != nil {
        fmt.Println("json err:", err)
    }
    fmt.Println(string(b))
    //案例2: json.MarshalIndent的使用,用縮進對輸出進行格式化,效果更加json化
    t2 := IT{"HuaWei", []string{"develop", "unittest", "production", "operative"}, false, 13000.0}
    b2, err := json.MarshalIndent(t2, "", "   ")
    if err != nil {
        fmt.Println("json err:", err)
    }
    fmt.Println(string(b2))
    //案例3:struct tag的使用。--->>> 輸出的時候,顯示為首字母小寫
    //JSON輸出的時候必須注意,只有導出的字段(首字母是大寫)才會被輸出,如果修改字段名,那么就會發現什么都不會輸出,所以必須通過struct tag定義來實現。
    /*           1)字段的tag是"-",那么這個字段不會輸出到JSON
    ?        2)tag中帶有自定義名稱,那么這個自定義名稱會出現在JSON的字段名中
    ?            3)tag中如果帶有"omitempty"選項,那么如果該字段值為空,就不會輸出到JSON串中
    ?        4)如果字段類型是bool, string, int, int64等,而tag中帶有",string"選項,那么這個字段在輸出到JSON的時候會把該字段對應的值轉換成JSON字符串

    */
    t3 := University{"清華大學", true, []string{"經濟", "法律", "音樂", "美術", "計算機"}, 3000.00}
    b3, err := json.MarshalIndent(t3, "", "   ")
    if err != nil {
        fmt.Println("%v\n", err)
    }
    fmt.Println(string(b3))

    //案例4:通過map生成JSON
    m1 := make(map[string]interface{})
    m1["company"] = "lenovo"
    m1["subjects"] = []string{"dev", "test", "pro"}
    m1["isok"] = true
    m1["salary"] = 15000.00

    b4, err := json.Marshal(m1)
    if err != nil {
        fmt.Println("%v\n", err)
    }
    fmt.Println(string(b4))
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

朝阳市| 京山县| 景泰县| 杂多县| 乌兰察布市| 江安县| 博爱县| 渑池县| 横峰县| 嘉禾县| 西峡县| 云林县| 镇平县| 遵化市| 彭山县| 星座| 襄城县| 三台县| 昌黎县| 余江县| 镇远县| 祁连县| 垣曲县| 柘荣县| 理塘县| 永宁县| 延川县| 广平县| 都安| 镇宁| 梓潼县| 廉江市| 青阳县| 铁力市| 平定县| 晴隆县| 通榆县| 七台河市| 台南市| 郁南县| 宁蒗|