我有兩個資料庫表。我想通過 mysql 查詢從這些表中獲取值并將其傳遞給控制器??。在那里我將它系結到一個結構并將 json 值顯示為對控制器的回應。但問題是兩個表之間有一些不常見的列,但我必須使用公共結構中的每個欄位。當我收到一張表的回應時,其他表的欄位在 json 物件中顯示為空,反之亦然。如何僅顯示每個 json 物件中的相關欄位?
代碼:
模型:
type Student struct {
StudentId int
Name string
Address string
}
type Teacher struct {
TeacherId int
Name string
Address string
Department string
}
type TeacherStudent struct {
StudentId int
Name string
Address string
TeacherId int
Department string
}
控制器:
json.Unmarshal([]byte(datas), &ts)
c.Data["json"] = ts
c.ServeJSON()
郵遞員的回應:
[
{
"StudnetId": 501,
"Name": Mark,
"Address": Canbera,
"TeacherId": 0,
"Deparment": ""
},
{
"StudnetId": 0,
"Name": John,
"Address": Melbourne,
"TeacherId": 101,
"Deparment": "Science"
}]
對于Studnet Response,我不想顯示TeacherId 和Department,對于Teacher Record,我不想在json 物件中顯示StudentId。
uj5u.com熱心網友回復:
回答我自己的問題:
對此的解決方案是使用json:"omitempty"
參考這篇文章:https : //www.sohamkamani.com/golang/omitempty/
注意:json:"omitempty"僅適用于欄位。它不適用于結構內的結構。它也不適用于 time.Time 欄位。參考這篇文章處理time.Time問題: JSON omitempty With time.Time Field
快樂編碼!
uj5u.com熱心網友回復:
您也可以json:"-"用于您想要的空欄位。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/377710.html
