具有相同欄位的兩個結構體型別的 Go 語言程式,每個欄位都帶有一個“JSON”標籤
結構體型別用於構建由欄位組成的自定義資料結構。這些欄位反映了結構的特性或屬性。能夠向欄位新增標籤,例如“JSON”標籤,在將結構序列化或反序列化為/從 JSON 格式時提供有關欄位的其他元資料,是結構體型別的一個有價值的功能。
在本文中,我們將編寫 Go 語言程式來表示每個欄位都帶有一個 JSON 標籤的結構體。
type StructName struct {
Field1 DataType1 `Tag1:"Value1" Tag2:"Value2"`
Field2 DataType2 `Tag3:"Value3" Tag4:"Value4"`
// ...
FieldN DataTypeN `TagN:"ValueN"`
}
結構體名稱 - 結構體型別的名稱。
欄位名稱 - 欄位的名稱。
資料型別 - 欄位的資料型別。
標籤始終用 (``) 反引號括起來,並具有 TagKey:“TagValue” 的格式。
演算法
步驟 1 - 此程式匯入“encoding/json”和“fmt”作為必要的包
步驟 2 - 建立兩個名為 Person 和 Employee 的結構體,這些結構體具有欄位 Name、Age 和 Address,以及相應的 json 標籤
步驟 3 - 建立一個 main 函式
步驟 4 - 在 main 中,建立一個名為 person 的 Person 結構體物件,並使用一些值初始化其欄位
步驟 5 - 在此步驟中,建立一個名為 employee 的 Employee 結構體物件,並使用一些值初始化其欄位
步驟 6 - 然後,使用 json.Marshal() 方法將 person 和 employee 結構體轉換為 JSON 格式
步驟 7 - 將獲得的輸出儲存在 personJSON 和 employeeJSON 變數中
步驟 8 - 最後,使用 fmt.Println() 列印 person 和 employee 結構體的 JSON 表示形式。
示例
在此示例中,我們將編寫一個 Go 語言程式來表示兩個名為 Person 和 Employee 的結構體,每個欄位都帶有一個 JSON 標籤。
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Address string `json:”address”`
}
type Employee struct {
Name string `json:"emp_name"`
Age int `json:"emp_age"`
Address string `json:"emp_address"`
}
func main() {
person := Person{
Name: "Karan",
Age: 24,
Address: "Hauz Khas",
}
employee := Employee{
Name: "Tarun",
Age: 26,
Address: "Saket",
}
personJSON, _ := json.Marshal(person)
employeeJSON, _ := json.Marshal(employee)
fmt.Println("Person JSON:", string(personJSON))
fmt.Println("Employee JSON:", string(employeeJSON))
}
輸出
Person JSON: {"name":"Karan","age":24,"address":"Hauz Khas"}
Employee JSON: {"emp_name":"Tarun","emp_age":26,"emp_address":"Saket"}
示例
在此示例中,我們將編寫一個 Go 語言程式來表示兩個名為 Car 和 Vehicle 的結構體,每個欄位都帶有一個 JSON 標籤。
package main
import (
"encoding/json"
"fmt"
)
type Car struct {
Brand string `json:"brand"`
Model string `json:"model"`
Year int `json:"year"`
Engine string `json:"engine"`
}
type Vehicle struct {
Brand string `json:"manufacturer"`
Model string `json:"model"`
Year int `json:"production_year"`
Engine string `json:"engine_type"`
}
func main() {
car := Car{
Brand: "Hyundai",
Model: "Camry",
Year: 2022,
Engine: "V6",
}
vehicle := Vehicle{
Brand: "Honda",
Model: "Civic",
Year: 2022,
Engine: "Inline-4",
}
carJSON, _ := json.Marshal(car)
vehicleJSON, _ := json.Marshal(vehicle)
fmt.Println("Car JSON:", string(carJSON))
fmt.Println("Vehicle JSON:", string(vehicleJSON))
}
輸出
Car JSON: {"brand":"Hyundai","model":"Camry","year":2022,"engine":"V6"}
Vehicle JSON: {"manufacturer":"Honda","model":"Civic","production_year":2022,"engine_type":"Inline-4"}
結論
在本文中,我們討論瞭如何編寫一個程式來表示每個欄位都帶有一個 JSON 標籤的結構體。我們使用兩個示例編譯並執行了在每個欄位上都帶有 JSON 標籤的結構體的程式。在第一個示例中,我們使用了 Person 和 Employee 結構體,在第二個示例中,我們使用了 Car 和 Vehicle 結構體。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP