三十八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类型。 

 

相关文章

类型转换 1、int转string 2、string转int 3、string转float ...
package main import s "strings" import...
类使用:实现一个people中有一个sayhi的方法调用功能,代码如...
html代码: beego代码:
1、读取文件信息: 2、读取文件夹下的所有文件: 3、写入文件...
配置环境:Windows7+推荐IDE:LiteIDEGO下载地址:http:...