php小編魚仔為您介紹一種在JSON中匯入結構並重新命名它的方法,即使用"GO"關鍵字。在JSON中,我們經常需要使用已定義的結構,但有時我們需要將其重新命名以適應特定的需求。使用"GO"關鍵字,我們可以在導入結構的同時,對其進行重新命名操作,從而更好地滿足我們的需求。這種方法簡單易用,讓我們能夠更靈活地處理JSON資料。接下來,讓我們一起來了解具體的操作步驟吧!
我用 gorm 建立了一個資料庫。為此,我創建了一個結構,並使用該結構建立了一個表。到目前為止,一切都很好。在後端,一切正常,但在前端,問題是調用的 json 總是返回大寫的 id,而 swagger 會產生一個小寫的 id。 go 中有沒有一種方法可以使用 json 標識符覆蓋從 gorm 導入的結構?
import "gorm.io/gorm" type report struct { gorm.model createdby user `gorm:"foreignkey:createdbyuserid" json:"createdby"` archived bool `json:"archived"` }
這個結構給了我以下回應
{ "ID": 8, "CreatedAt": "2022-11-15T20:45:16.83+01:00", "UpdatedAt": "2022-12-27T21:34:17.871+01:00", "DeletedAt": null "createdBy": { "ID": 1, "CreatedAt": "2022-11-15T20:02:17.497+01:00", "UpdatedAt": "2022-11-15T20:02:17.497+01:00", ... }, "archived": true, }
有沒有辦法讓 id 小寫(如 archived
)?或者我可以在 swaggo 調整它,使其以大寫形式生成。
我所看到的是,您可以在沒有此 gorm.model
的情況下製作表格並自己定義所有屬性。問題是我必須自己建立這些列的所有功能(刪除、更新、索引、主鍵…)。
我創建自己的 gorm-model-struct:
type gormmodel struct { id uint `gorm:"primarykey" json:"id"` createdat time.time `json:"createdat"` updatedat time.time `json:"updatedat"` deletedat gorm.deletedat `gorm:"index" json:"deletedat"` } //@name models.gormmodel
我將此結構導入到其他結構中:
type Report struct { GormModel CreatedBy User `gorm:"foreignKey:CreatedByUserID" json:"createdBy"` Archived bool `json:"archived"` }
重要的是,您新增 json-key 並設定屬性名稱。
以上是GO:導入一個結構並在 json 中重命名它的詳細內容。更多資訊請關注PHP中文網其他相關文章!