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

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

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

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

Q&A

解決済

1回答

288閲覧

Golang Dynamodb ストラクトタグが機能しないことについて

sueken5

総合スコア12

Go

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

0グッド

0クリップ

投稿2018/05/04 12:06

コード

# Model.go package real_estates import ( "../stations" ) type RealEstate struct { RealEstateId string `json:"real_estate_id" dynamo:"real_estate_id"` Name string `json: "name" dynamo:"name"` Code string `json: "code" dynamo:"code"` Rent string `json: "rent" dynamo:"rent"` AdministrativeExpenses string `json: "administrative_expenses" dynamo:"administrative_expenses"` SecurityDeposit string `json: "security_deposit" dynamo: "security_deposit"` KeyMoney string `json: "key_money" dynamo: "key_money"` Deposit string `json: "deposit" dynamo: "deposit"` FloorPlan string `json: "floor_plan" dynamo: "floor_plan"` FloorPlanDetail string `json: "floor_plan_detail" dynamo: "floor_plan_detail"` Square string `json: "square" dynamo: "square"` Direction string `json: "direction" dynamo: "direction"` Type string `json: "type" dynamo: "type"` Old string `json: "old" dynamo: "old"` Address string `json: "address" dynamo: "address"` Storey string `json: "storey" dynamo: "storey"` Floors string `json: "floors" dynamo: "floors"` BuiltDate string `json: "built_date" dynamo: "built_date"` Stations []stations.Station Images []string `json: "images" dynamo: "images"` IsSeparatedBathToilet bool `json: "is_separated_bath_toilet" dynamo: "is_separated_bath_toilet"` HasAirConditioner bool `json: "has_air_conditioner" dynamo: "has_air_conditioner"` IsWoodenFloor bool `json: "is_wooden_floor" dynamo: "is_wooden_floor"` HasWashMachineSpace bool `json: "has_wash_machine_space" dynamo: "has_wash_machine_space"` HasWashlet bool `json: "has_washlet" dynamo: "has_washlet"` HasElevator bool `json: "has_elevator" dynamo: "has_elevator"` IsSeparatedWashroom bool `json: "is_separated_washroom" dynamo: "is_separated_washroom"` HasParking string `json: "has_parking" dynamo: "has_parking"` HasBicycleParking bool `json: "has_bicycle_parking" dynamo: "has_bicycle_parking"` Insurance string `json: "insurance" dynamo: "insurance"` CanApplyNow string `json: "can_apply_now" dynamo: "can_apply_now"` Structure string `json: "structure" dynamo: "structure"` Commissions string `json: "commissions" dynamo: "commissions"` TotalUnits string `json: "total_units" dynamo: "total_units"` InitialCost string `json: "initial_cost" dynamo: "initial_cost"` OtherCost string `json: "other_cost" dynamo: "other_cost"` HasAutoLock bool `json: "has_auto_lock" dynamo: "has_auto_lock"` IsPetFriendly bool `json: "is_pet_friendly" dynamo: "is_pet_friendly"` Url string `json: "url" dynamo: "url"` CreatedAt string `json:"created_at" dynamo:"created_at"` UpdatedAt string `json:"updated_at" dynamo:"updated_at"` DeletedAt string `json:"deleted_at" dynamo:"deleted_at"` DistrictId string `json:"district_id" dynamo:"district_id"` }
package real_estates import ( "os" "../../helpers/dynamodb" ) func BatchWrite(realEstates ...RealEstate) (error) { table := dynamodb.Table(os.Getenv("STAGE") + "_real_estates") items := make([]interface{}, 0) for _, value := range realEstates { items = append(items, value) } _, err := table.Batch().Write().Put(items...).Run() return err }

実現したいこと

上記のコードを用いて、Dynamodbに対しBatchWriteし、RealEstateのデータを書き込みたい

問題

dynamodbに保存されるデータが以下のようになってしまします。

{ "Address": "XXX", "Code": "XXX", "Commissions": "XXX", "district_id": "XXX", "Floors": "XXX", "HasAirConditioner": XXX, "HasAutoLock": XXX, "HasBicycleParking": XXX, "HasElevator": XXX, "HasWashlet": XXX, "HasWashMachineSpace": XXX, "Images": [], "Insurance": "XXX", "IsPetFriendly": XXX, "IsSeparatedBathToilet": XXX, "IsSeparatedWashroom": XXX, "IsWoodenFloor": XXX, "Name": "XXX", "real_estate_id": "XXX", "Rent": "XXX", "Square": "XXX", "Stations": [], "Storey": "XXX", "Structure": "XXX", "Url": "XXX" }

このように「real_estate_id」と「distinct_id」以外は大文字になってしまします。これをストラクトタグで定義したようにスネークケースにしたいです。

まとめ

皆様のお知恵をお借りできれば幸いです。また足りない情報などがございましたら、追記いたしますので、ぜひお申し付けください。よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

タグはスペースで区切られるため、コロンの後にスペースを入れてはいけません。
Url string `json: "url" dynamo: "url"` ではなくて Url string `json:"url" dynamo:"url"` としてみてください。Url以外も同様です。

real_estate_iddistinct_id が正常に登録されているのはどちらもコロンの後にスペースが入っていないためです。

投稿2018/05/22 14:04

編集2018/05/22 14:07
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問