
[code]

        import (
        "github.com/jinzhu/gorm"
        _ "github.com/mattn/go-sqlite3"
    )
    
    type UnivNormalTimeTable struct {
        Id           int    `json:"id"`
        Hour         int    `json:"hour"`
        Minute       int    `json:"minute"`
        DayOfTheWeek string `json:"day_of_the_week"`
    }
    
    type UnivNormalTimeTables []UnivNormalTimeTable
    
    type UnivNormalTimeTableRepository struct{}
    
    var db *gorm.DB
    var err error
    
    func init() {
        db, err = gorm.Open("sqlite3", "data/kamigamo.db")
        if err != nil {
            panic(err)
        }
        db.AutoMigrate(&UnivNormalTimeTable{})
    }
    
    func NewUnivNormalTimeTableRepository() UnivNormalTimeTableRepository {
        return UnivNormalTimeTableRepository{}
    }
    
    func (p UnivNormalTimeTableRepository) LoadKamigamoTime() UnivNormalTimeTables {
        var univNormalTimeTable = UnivNormalTimeTables{}
        db.Select("hour, minute, day_of_the_week").Find(&univNormalTimeTable)
        return univNormalTimeTable
    }
    
[/code]

今、上記のようなモデルを作成しているのですが、idをjsonで返す必要がないため、id以外をselectしています。これを呼び出した結果のjsonが、

[code]

    {
                "id": 0,
                "hour": 9,
                "minute": 5,
                "day_of_the_week": "normal"
            },
            {
                "id": 0,
                "hour": 9,
                "minute": 15,
                "day_of_the_week": "normal"
            },...
    
[/code]

のような形で返ってきてidが0の状態になってしまいます。idを除いたjsonの返し方を知りたいです。


CC BY-SA 3.0
2018-03-03T03:47:43.610
42103
2022-04-20T18:06:35.607
24986
question
go gorm
gormでselectして特定の値のjsonを返したい


`UnivNormalTimeTables` 型の変数を使うことにしているため、戻り値の構造体には必ず `Id`
フィールドが存在します。このフィールドは構造体を初期化したときに 0
が代入されているので現在の挙動になっています。そこでたとえば、`UnivNormalTimeTables` 型の変数を JSON
に変換している部分のコードを変えることで `Id` フィールド無しの JSON を出力することができます。あるいは
<http://doc.gorm.io/advanced.html#sql-builder> のように結果を格納するための構造体を別に作っても良いです。


CC BY-SA 3.0
2018-03-05T02:28:11.187
42131
2018-03-05T02:28:11.187
19110
42103
answer