实例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)的更多相关文章

  1. 对象的序列化与反序列化---IO学习笔记(四)

    对象的序列化,反序列化 对象的序列化: 就是将Object转换成byte序列 对象的反序列化: 将byte序列转换成Object 序列化流.反序列化流 序列化流(ObjectOutputStream) ...

  2. (记录)Jedis存放对象和读取对象--Java序列化与反序列化

    一.理论分析 在学习Redis中的Jedis这一部分的时候,要使用到Protostuff(Protobuf的Java客户端)这一序列化工具.一开始看到序列化这些字眼的时候,感觉到一头雾水.于是,参考了 ...

  3. Java对象的序列化与反序列化

    序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等.在网络传输过程中,可以是字节或是 ...

  4. Java对象的序列化和反序列化[转]

    Java基础学习总结--Java对象的序列化和反序列化 一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化.把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用 ...

  5. java中对象的序列化和反序列化

    [对象的序列化和反序列化 ] 1.定义:序列化--将对象写到一个输出流中.反序列化则是从一个输入流中读取一个对象.类中的成员必须是可序列化的,而且要实现Serializable接口,这样的类的对象才能 ...

  6. 【Java IO流】对象的序列化和反序列化

    对象的序列化和反序列化 1)对象序列化,就是将Object对象转换成byte序列,反之叫对象的反序列化. 2)序列化流(ObjectOutputStream),是字节的过滤流—— writeObjec ...

  7. Java对象的序列化与反序列化-Json篇

    说到Java对象的序列化与反序列化,我们首先想到的应该是Java的Serializable接口,这玩意在两个系统之间的DTO对象里面可能会用到,用于系统之间的数据传输.或者在RPC(远程方法调用)时可 ...

  8. 利用JavaScriptSerializer类 进行Json对象的序列化和反序列化和过滤

    项目下载:JavaScriptSerializer_对JSON对象序列化与反序列化及过滤器 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化 1. 首 ...

  9. 第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 ...

随机推荐

  1. 机器学习---朴素贝叶斯与逻辑回归的区别(Machine Learning Naive Bayes Logistic Regression Difference)

    朴素贝叶斯与逻辑回归的区别: 朴素贝叶斯 逻辑回归 生成模型(Generative model) 判别模型(Discriminative model) 对特征x和目标y的联合分布P(x,y)建模,使用 ...

  2. 第12组 Beta版本演示

    前言 组长博客 组名: To Be Done 组员和贡献比例 短学号 姓名 分工 贡献比例 614 王永福* 前后端实现.发任务.催进度 30% 440 孙承恺 UI设计 15% 529 邱畅杰 文本 ...

  3. 「ZJOI2019」语言

    传送门 Description 给定一棵\(n\)个点的树和\(m\)条链,两个点可以联会当且仅当它们同在某一条链上,求可以联会的点的方案数 \(n,m\leq10^5\) Solution  考虑计 ...

  4. GIT 安装和升级

    git 安装: http://git-scm.com/download/mac git 升级: $ git clone git://git.kernel.org/pub/scm/git/git.git

  5. 剑指offer: 求1+2+...+n

    题目描述: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 思路分析: 由于题目的限制条件很多.同样想到 ...

  6. 【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/mao_xiao_feng/article/ ...

  7. Wordpress 获取 custom post type 的当前文章 分类信息

    // knowledgebase_category 为 custom post type taxonomy $terms = get_the_terms( get_the_ID() , 'knowle ...

  8. node.js通过iconv-lite完成gbk字符解码例子

    通过 iconv-lite可以实现中文字符解码 1.安装iconv-lite npm install iconv-lite 2.iconv-lite网址如下 iconv-lite https://gi ...

  9. odoo开发笔记--日期or时间字段给定默认值

    开发中经常有这样的场景,需要给某个日期或者时间的字段默认值: 例如: 日期,默认今天 时间,默认当前时间 可以在odoo模型定义中进行设置, 如下样例提供参考: test_data = fields. ...

  10. C# Newtonsoft.Json解析json字符串处理(最清晰易懂的方法)

    需求: 假设有如下json字符串: { ", "employees": [ { "firstName": "Bill", &quo ...