go语言学习 ---struct 对象的序列化和反序列化(xml)
实例1:
//main
package main import (
"encoding/xml"
"fmt"
) type person struct {
Name string
Age int
} func main() {
p := person{Name: "sary", Age: 20} if data, err := xml.MarshalIndent(p, "", " "); err != nil {
fmt.Println(err)
return
} else {
fmt.Println(string(data))
} }
输出:
D:/Go/bin/go.exe build [D:/GOPATH/src/study.go]
Success: process exited with code 0.
D:/GOPATH/src/study.go/study.go.exe [D:/GOPATH/src/study.go]
<person>
<Name>sary</Name>
<Age>20</Age>
</person>
Success: process exited with code 0.
实例2
//main
package main
import (
"encoding/xml"
"fmt"
)
type person struct {
Name string
Age int
}
func main() {
p := person{Name: "sary", Age: 20}
var data []byte
var err error
if data, err = xml.MarshalIndent(p, "#", " "); err != nil {
fmt.Println(err)
return
}
fmt.Println(string(data))
p2 := new(person)
if err = xml.Unmarshal(data, p2); err != nil {
fmt.Println(err)
return
}
fmt.Println(p2)
}
输出:
D:/Go/bin/go.exe build [D:/GOPATH/src/study.go]
Success: process exited with code 0.
D:/GOPATH/src/study.go/study.go.exe [D:/GOPATH/src/study.go]
#<person>
# <Name>sary</Name>
# <Age>20</Age>
#</person>
&{sary 20}
Success: process exited with code 0.
实例3:(设置标签属性)
//main
package main import (
"encoding/xml"
"fmt"
) type person struct {
Name string `xml:"Name,attr"`
Age int `xml:"Age,attr"`
} func main() {
p := person{Name: "sary", Age: 20} var data []byte
var err error if data, err = xml.MarshalIndent(p, "#", " "); err != nil {
fmt.Println(err)
return
} fmt.Println(string(data)) p2 := new(person)
if err = xml.Unmarshal(data, p2); err != nil {
fmt.Println(err)
return
}
fmt.Println(p2) }
输出:
D:/Go/bin/go.exe build [D:/GOPATH/src/study.go]
Success: process exited with code 0.
D:/GOPATH/src/study.go/study.go.exe [D:/GOPATH/src/study.go]
#<person Name="sary" Age="20"></person>
&{sary 20}
Success: process exited with code 0.
go语言学习 ---struct 对象的序列化和反序列化(xml)的更多相关文章
- 对象的序列化与反序列化---IO学习笔记(四)
对象的序列化,反序列化 对象的序列化: 就是将Object转换成byte序列 对象的反序列化: 将byte序列转换成Object 序列化流.反序列化流 序列化流(ObjectOutputStream) ...
- (记录)Jedis存放对象和读取对象--Java序列化与反序列化
一.理论分析 在学习Redis中的Jedis这一部分的时候,要使用到Protostuff(Protobuf的Java客户端)这一序列化工具.一开始看到序列化这些字眼的时候,感觉到一头雾水.于是,参考了 ...
- Java对象的序列化与反序列化
序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等.在网络传输过程中,可以是字节或是 ...
- Java对象的序列化和反序列化[转]
Java基础学习总结--Java对象的序列化和反序列化 一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化.把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用 ...
- java中对象的序列化和反序列化
[对象的序列化和反序列化 ] 1.定义:序列化--将对象写到一个输出流中.反序列化则是从一个输入流中读取一个对象.类中的成员必须是可序列化的,而且要实现Serializable接口,这样的类的对象才能 ...
- 【Java IO流】对象的序列化和反序列化
对象的序列化和反序列化 1)对象序列化,就是将Object对象转换成byte序列,反之叫对象的反序列化. 2)序列化流(ObjectOutputStream),是字节的过滤流—— writeObjec ...
- Java对象的序列化与反序列化-Json篇
说到Java对象的序列化与反序列化,我们首先想到的应该是Java的Serializable接口,这玩意在两个系统之间的DTO对象里面可能会用到,用于系统之间的数据传输.或者在RPC(远程方法调用)时可 ...
- 利用JavaScriptSerializer类 进行Json对象的序列化和反序列化和过滤
项目下载:JavaScriptSerializer_对JSON对象序列化与反序列化及过滤器 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化 1. 首 ...
- 第12讲-Java中的IO操作及对象的序列化与反序列化
1.知识点 1.1.课程回顾 1.2.本章重点 1.2.1 io操作 1.2.2 对象的序列化与反序列化 2.具体内容 2.1.Java IO 2.1.1.什么是IO IO其实就是输入.输出 I ...
随机推荐
- linux高性能服务器编程 (一) --Tcp/Ip协议族
前言: 在学习swoole入门基础的过程中,遇到了很多知识瓶颈,比方说多进程.多线程.以及进程池和线程池等都有诸多的疑惑.之前也有学习相关知识,但只是单纯的知识面了解.而没有真正的学习他们的来龙去脉. ...
- mysql 存储过程 REPEAT ... UNTIL ... END REPEAT
begin declare b int; declare use_no varchar(10); declare use_name varchar(400); decla ...
- 【软工实践】Beta冲刺(5/5)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 将数据分析以可视化形式展示出来 新增数据分析展示等功能API 服务器后端部署, ...
- Oracle系列十二 约束
约束是表级的强制规定有以下五种约束: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK 注意事项 如果不指定约束名 ,Oracle server 自动按照 S ...
- MongoDB学习(附录一) 安装mongodb3.6时碰到的问题
1.Installing MongoDB Compass...(this may take a few minutes)这一步,会停留很长时间,点击取消可能也取消不了. 安装mongdodb ,进度卡 ...
- 123456123456#1#---###3%%%----com.zzj.SuperPuperID668---前拼show后广--嘻哈水管工-111111
com.zzj.SuperPuperID668---前拼show后广--嘻哈水管工-1111111111111
- 屠龙术&平凡的世界
x 听过很多道理,却依然过不好这一生 小时候,总觉得世上肯定存在屠龙术.就像<倚天屠龙记>里面张无忌学的<乾坤大挪移>/<九阳真经>一般, 学会了就可以一人单挑光明 ...
- vue 框架安装系列问题
npm install --global vue-cli 错误提示:vue-cli-service' 不是内部或外部命令,也不是可运行的程序或批处理文件解决:如果是npm安装的 执行 npm -g b ...
- QLineEdit 加省略号
第一种方法: QFontMetrics elidfont(ui->lineEdit->font()); ui->lineEdit->setText (elidfont.elid ...
- Grafana修改背景色
grafana默认主题色是黑底白字,我们将它修改成白底黑字: in /etc/grafana/grafana.ini uncomment line and set default_theme = li ...