GO:導入一個結構並在 json 中重命名它
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中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)