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)
    	}
    
    }
    

      

  • 相关阅读:
    图片上传
    中间件
    放大镜
    JQ编写楼层效果
    AJAX,PHP,前端简单交互制作输入框效果
    AJAX中使用post,get接收发送数据的区别
    PHP内写css样式
    计算2个日期相差的月份
    react-相关技术栈之-dva/dynamic
    es6相关知识点
  • 原文地址:https://www.cnblogs.com/saryli/p/15366311.html
Copyright © 2011-2022 走看看