色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go struct xml json

錢琪琛2年前10瀏覽0評論

在Go語言中,Struct是一種重要的數據結構,用于組織和存儲多個變量,它可以通過標簽的方式來定義對應的XML和JSON格式。

type Person struct {
Name    string   `xml:"name" json:"name"`
Age     int      `xml:"age" json:"age"`
Address Address  `xml:"address" json:"address"`
}
type Address struct {
City    string   `xml:"city" json:"city"`
Country string   `xml:"country" json:"country"`
}

在上面的代碼段中,定義了一個Person結構體,其中有Name、Age和Address三個屬性,分別是string、int和Address類型的變量。同時,針對每個屬性都定義了對應的XML和JSON標簽,這些標簽會影響序列化和反序列化操作,讓結構體在序列化和反序列化時與XML和JSON保持一致。

使用go struct xml的方式可以通過如下代碼將Person對象序列化成XML格式:

p := Person{Name: "Joe", Age: 25, Address: Address{City: "New York", Country: "USA"}}
xmlBytes, err := xml.MarshalIndent(p, "", "  ")
if err != nil {
log.Fatal("Failed to marshal Person to XML:", err)
}
fmt.Println(string(xmlBytes))

其中xml.MarshalIndent()函數將Person對象序列化成XML字節切片,輸出時加上空格縮進,如下所示:

<Person>
<name>Joe</name>
<age>25</age>
<address>
<city>New York</city>
<country>USA</country>
</address>
</Person>

類似地,使用go struct json的方式可以通過如下代碼將Person對象序列化成JSON格式:

p := Person{Name: "Joe", Age: 25, Address: Address{City: "New York", Country: "USA"}}
jsonBytes, err := json.MarshalIndent(p, "", "  ")
if err != nil {
log.Fatal("Failed to marshal Person to JSON:", err)
}
fmt.Println(string(jsonBytes))

其中json.MarshalIndent()函數將Person對象序列化成JSON字節切片,輸出時加上空格縮進,如下所示:

{
"name": "Joe",
"age": 25,
"address": {
"city": "New York",
"country": "USA"
}
}

可以看到,通過結構體的標簽定義XML和JSON格式,可以大大簡化序列化和反序列化操作,同時也保證了數據的一致性。