• Go 中 JSON 的序列化和反序列化


    golang中对json的序列化/反序列化操作还是比较容易的,
    序列化操作主要是通过encoding/json包的Marshal()方法来实现,
    反序列化操作主要是通过encoding/json包的Unmarshal()方法来实现.

    //JSON序列化和反序列化
    
    //可用在api序列化输出
    //转成结构体,方便程序操作等
    
    package main
    
    import (
    	"encoding/json"
    	"fmt"
    )
    
    type Response1 struct {
    	Page   int
    	Fruits []string
    }
    
    type Response2 struct {
    	Page   int      `json:"page"`
    	Fruits []string `json:"fruits"`
    }
    
    func main() {
    
    	//布尔型
    	boolByte, _ := json.Marshal(true)
    	fmt.Println(string(boolByte))
    
    	//整数型
    	intByte, _ := json.Marshal(100)
    	fmt.Println(string(intByte))
    
    	//浮点型
    	floatByte, _ := json.Marshal(1.23456)
    	fmt.Println(string(floatByte))
    
    	//字符串
    	stringByte, _ := json.Marshal("字符串啊啊啊")
    	fmt.Println(string(stringByte))
    
    	//切片
    	sliceByte, _ := json.Marshal([]string{"apple", "orange", "banana"})
    	fmt.Println(string(sliceByte))
    
    	//字典
    	mapByte, _ := json.Marshal(map[string]int{"apple": 5, "orange": 6, "banana": 7})
    	fmt.Println(string(mapByte))
    
    	//自定义类型1
    	customsByte1, _ := json.Marshal(&Response1{Page: 1, Fruits: []string{"apple", "orange", "banana"}})
    	fmt.Println(string(customsByte1))
    
    	//自定义类型2,tag语法
    	customsByte2, _ := json.Marshal(&Response2{Page: 2, Fruits: []string{"apple", "orange", "banana"}})
    	fmt.Println(string(customsByte2))
    
    	//反序列化到结构体
    	json1 := `{"Page":1,"Fruits":["apple","orange","banana"]}`
    	json2 := `{"page":2,"fruits":["apple","orange","banana"]}`
    	response1 := Response1{}
    	response2 := Response2{}
    	json.Unmarshal([]byte(json1), &response1)
    	fmt.Println(response1)
    	json.Unmarshal([]byte(json2), &response2)
    	fmt.Println(response2)
    }
    
  • 相关阅读:
    关于几种滤波的对比
    学习笔记深入理解Java中的HashMap数据结构
    学习笔记Redis基础常识
    学习笔记Java内存模型
    学习笔记理解GC
    工作中的点点滴滴单例的使用
    工作中的点点滴滴学习一下门面模式
    工作中的点点滴滴接口幂等的问题
    【转载】WCF、WebAPI、WCFREST、WebService之间的区别
    【转载】工具分享——将C#文档注释生成.chm帮助文档
  • 原文地址:https://www.cnblogs.com/taadis/p/12125829.html
Copyright © 2020-2023  润新知