From 86a4ef798ad7443c9ad743530636a40d51121c0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Z=C3=BCrcher?= Date: Thu, 6 Nov 2025 16:47:31 +0100 Subject: [PATCH] fix json error --- models/person.go | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/models/person.go b/models/person.go index 6b8be95..d389f19 100644 --- a/models/person.go +++ b/models/person.go @@ -8,12 +8,6 @@ import ( type Persons []Person -type Person struct { - Id int `gorm:"primaryKey" json:"id"` - FirstName string `gorm:"column:firstName" json:"firstName"` - LastName string `gorm:"column:lastName" json:"lastName"` -} - // --- Implement driver.Valuer (for saving to DB) func (r Persons) Value() (driver.Value, error) { return json.Marshal(r) @@ -27,3 +21,23 @@ func (r *Persons) Scan(value any) error { } return json.Unmarshal(bytes, r) } + +type Person struct { + Id int `gorm:"primaryKey" json:"id"` + FirstName string `gorm:"column:firstName" json:"firstName"` + LastName string `gorm:"column:lastName" json:"lastName"` +} + +// --- Implement driver.Valuer (for saving to DB) +func (r Person) Value() (driver.Value, error) { + return json.Marshal(r) +} + +// --- Implement sql.Scanner (for reading from DB) +func (r *Person) Scan(value any) error { + bytes, ok := value.([]byte) + if !ok { + return fmt.Errorf("failed to unmarshal Settings: %v", value) + } + return json.Unmarshal(bytes, r) +}