zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    Android支付接入(7):Google In-app-Billing
    SDK接入(2)之Android Google Play内支付(in-app Billing)接入
    Google In-App Billing 实现(内含Unity 实现经验)
    unity3d如何快速接入渠道SDK之Unity篇
    [Unity3D]Unity+Android交互教程——让手机"动"起来
    mysql avg()函数,获取字段的平均值
    mysql tan() 函数
    mysql pi() 获取pi
    mysql mod() 获取余数
    mysql sqrt() 函数
  • 原文地址:https://www.cnblogs.com/saryli/p/11038085.html
Copyright © 2011-2022 走看看