(三十八)golang--json(对切片、map、结构体进行序列化)

前端之家收集整理的这篇文章主要介绍了(三十八)golang--json(对切片、map、结构体进行序列化)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

JSON(javascript object notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。key-val

JSON是在2001年开始推广的数据格式,目前已成为主流的数据格式。

JSON易于机器解析和生成,并有效地提升网络传输效率。通常程序在网络传输时会先将数据(结构体、map)等序列化成json字符串,到接收方得到json数据时,再反序列化恢复成原来的数据类型。这种方式已成为各个语言的标准。

要解析成json格式,struct里面的字段必须大写!!!不然解析出来的是{}

因为Json包相当于一个外包,字段大写才能被其调用。。。

package main

import (
    "encoding/json"
    fmt"
)

type monster struct {
    Name     string
    Age      int
    Birthday 
    Sal      float64
    Skill    
}

func testStruct() {
    m := monster{
        Name:     牛魔王,Age:      101994-09-1810000.0牛魔拳//序列化
    data,err := json.Marshal(&m)
    if err != nil {
        fmt.Println(序列化失败,error=序列化之后的结果:%v\n",(data))
}

func testMap() {
    var a map[string]interface{}
    a = make(map[{})
    a[name"] = 孙悟空
    a[age20address水帘洞skill七十二变
    data,err := json.Marshal(a)
    (data))
}

func testSlice() {
    var slice []map[{}
    var m1 map[{}

    m1 = make(map[{})
    m1[
    m1["] = [2]string{如意金箍棒}
    slice = append(slice,m1)
    var m2 map[{}

    m2 = make(map[{})
    m2[猪八戒
    m2[30
    slice = json.Marshal(slice)
    (data))
}

func testFloat64() {
    var a float64
    a = 0.987(data))
}

func main() {
    testStruct()
    testMap()
    testSlice()
    testFloat64()
}

要想序列化成小写的,只需要用tag指定即可:

 

对普通数据类型进行序列化是没意义的,只是相当于转换成string类型。 

 

猜你在找的Go相关文章