質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

0回答

412閲覧

invalid character 'F' looking for beginning of object key stringというエラーが出ます。

hiei1

総合スコア52

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2022/06/26 13:28

curl http://localhost:8080/users/ -X POST -H "Content-Type: application/json" -d '{"FirstName": "Rikka", "LastName": "Takarada"}'をしているのですがデータベースに保存されずinvalid character 'F' looking for beginning of object key stringというものが出ます。これはどのように解決すればいいでしょうか?

user_controller.go

1package user 2 3import ( 4 "fmt" 5 6 "github.com/gin-gonic/gin" 7 8 user "background/service" 9) 10 11type Controller struct{} 12 13// 検索 GET /books 14func (pc Controller) Index(c *gin.Context) { 15 // パラメータ取得 16 var s user.Service 17 p, err := s.GetAll() 18 19 if err != nil { 20 c.AbortWithStatus(404) 21 fmt.Println(err) 22 } else { 23 c.JSON(200, p) 24 } 25} 26func (pc Controller) Create(c *gin.Context) { 27 var s user.Service 28 p, err := s.CreateModel(c) 29 30 if err != nil { 31 c.AbortWithStatus(400) 32 fmt.Println(err) 33 } else { 34 c.JSON(201, p) 35 } 36} 37 38// Show action: GET /users/:id 39func (pc Controller) Show(c *gin.Context) { 40 id := c.Params.ByName("id") 41 var s user.Service 42 p, err := s.GetByID(id) 43 44 if err != nil { 45 c.AbortWithStatus(404) 46 fmt.Println(err) 47 } else { 48 c.JSON(200, p) 49 } 50} 51 52// Update action: PUT /users/:id 53func (pc Controller) Update(c *gin.Context) { 54 id := c.Params.ByName("id") 55 var s user.Service 56 p, err := s.UpdateByID(id, c) 57 58 if err != nil { 59 c.AbortWithStatus(400) 60 fmt.Println(err) 61 } else { 62 c.JSON(200, p) 63 } 64} 65 66// Delete action: DELETE /users/:id 67func (pc Controller) Delete(c *gin.Context) { 68 id := c.Params.ByName("id") 69 var s user.Service 70 71 if err := s.DeleteByID(id); err != nil { 72 c.AbortWithStatus(403) 73 fmt.Println(err) 74 } else { 75 c.JSON(204, gin.H{"id #" + id: "deleted"}) 76 } 77}

user_server.go

1package server 2 3import ( 4 "github.com/gin-gonic/gin" 5 6 user "background/controller" 7) 8 9// 初期化 10func Init() { 11 r := router() 12 13 r.Run() 14} 15 16// ルーティング 17func router() *gin.Engine { 18 r := gin.Default() 19 20 u := r.Group("/users") 21 { 22 ctrl := user.Controller{} 23 u.GET("", ctrl.Index) 24 u.GET("/:id", ctrl.Show) 25 u.POST("", ctrl.Create) 26 u.PUT("/:id", ctrl.Update) 27 u.DELETE("/:id", ctrl.Delete) 28 } 29 30 return r 31}
package entity // User is user models property type User struct { ID uint `json:"id"` FirstName string `json:"firstname"` LastName string `json:"lastname"` }

user_service.go

1package user 2 3import ( 4 "background/db" 5 "background/entity" 6 7 "github.com/gin-gonic/gin" 8) 9 10type Service struct{} 11 12type User entity.User 13 14func (s Service) GetAll() ([]User, error) { 15 db := db.GetDB() 16 var u []User 17 18 if err := db.Find(&u).Error; err != nil { 19 return nil, err 20 } 21 22 return u, nil 23} 24 25// CreateModel is create User model 26func (s Service) CreateModel(c *gin.Context) (User, error) { 27 db := db.GetDB() 28 var u User 29 30 if err := c.BindJSON(&u); err != nil { 31 return u, err 32 } 33 34 if err := db.Create(&u).Error; err != nil { 35 return u, err 36 } 37 38 return u, nil 39} 40 41// GetByID is get a User 42func (s Service) GetByID(id string) (User, error) { 43 db := db.GetDB() 44 var u User 45 46 if err := db.Where("id = ?", id).First(&u).Error; err != nil { 47 return u, err 48 } 49 50 return u, nil 51} 52 53// UpdateByID is update a User 54func (s Service) UpdateByID(id string, c *gin.Context) (User, error) { 55 db := db.GetDB() 56 var u User 57 58 if err := db.Where("id = ?", id).First(&u).Error; err != nil { 59 return u, err 60 } 61 62 if err := c.BindJSON(&u); err != nil { 63 return u, err 64 } 65 66 db.Save(&u) 67 68 return u, nil 69} 70 71// DeleteByID is delete a User 72func (s Service) DeleteByID(id string) error { 73 db := db.GetDB() 74 var u User 75 76 if err := db.Where("id = ?", id).Delete(&u).Error; err != nil { 77 return err 78 } 79 80 return nil 81} 82

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問