• golang学习笔记---struct对象序列号和反序列华


    package main
    
    import (
    	"encoding/xml"
    	"fmt"
    )
    
    type person struct {
    	Name string `xml:"name,attr"`
    	Age  int    `xml:"年龄"`
    }
    
    func main() {
    	p := person{Name: "sary", Age: 18}
    	var data []byte
    	var err error
    	if data, err = xml.MarshalIndent(p, "", "    "); err != nil {
    		fmt.Println(err)
    		return
    	} else {
    		fmt.Println(string(data))
    	}
    
    	p2 := new(person)
    	if err = xml.Unmarshal(data, p2); err != nil {
    		fmt.Println(err)
    		return
    	} else {
    		fmt.Println(p2)
    	}
    
    }
    

      输出:

    <person name="sary">
        <年龄>18</年龄>
    </person>
    &{sary 18}
    

      注意: flag对于需要同名的多个参数则不适合(可将多个同名的参数作为一个字串参数,再自行截取再配对)

    属性自定义:`xml:"name,attr"`

    package main
    
    import (
    	"encoding/xml"
    	"fmt"
    )
    
    type Person struct {
    	Name string `xml:"name,attr"`
    	Age  int
    }
    
    func main() {
    	p := Person{Name: "sary", Age: 30}
    	var data []byte
    	var err error
    	if data, err = xml.MarshalIndent(p, "", "    "); err != nil {
    		fmt.Println(err)
    		return
    	} else {
    		fmt.Println(string(data))
    	}
    
    	p2 := new(Person)
    	if err = xml.Unmarshal(data, p2); err != nil {
    		fmt.Println(err)
    		return
    	} else {
    		p2.Age = 18
    		fmt.Println(p2)
    	}
    
    }
    

      

  • 相关阅读:
    pytest框架
    Zabbix第九章(zabbix自定义item)
    Zabbix第七章(Zabbix监控本地)
    Zabbix第五章(配置zabbix的语言)
    Zabbix第四章(zabbix-server安装)
    Zabbix第二章(下载)
    Zabbix第一章(简介)
    线性筛
    Eratosthenes筛法
    质数判定
  • 原文地址:https://www.cnblogs.com/saryli/p/15366311.html
Copyright © 2020-2023  润新知