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

      

  • 相关阅读:
    wifi详解(四)
    wifi详解(三)
    wifi详解(二)
    wifi详解(一)
    Linux下GPIO驱动
    wpa_cli调试工具的使用
    WAPI
    java spring使用Jackson过滤
    JPA 一对多双向映射 结果对象相互迭代 造成堆栈溢出问题方法
    Javassist指引(二)--ClassPool
  • 原文地址:https://www.cnblogs.com/saryli/p/15366311.html
Copyright © 2011-2022 走看看