第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Golang 中 DynamoDB 索引鍵的空字符串

Golang 中 DynamoDB 索引鍵的空字符串

Go
慕碼人2483693 2022-10-10 19:31:58
在與 DynamoDB 通信時(shí),我一直在使用 Protobuf 進(jìn)行對(duì)象定義。到目前為止,這些對(duì)象看起來(lái)像這樣:type Record struct {    state         protoimpl.MessageState    sizeCache     protoimpl.SizeCache    unknownFields protoimpl.UnknownFields    Id               string        `protobuf:"bytes,2,opt,name=id,json=id,proto3" dynamodbav:"id,omitempty" json:"id,omitempty"`    Name             string        `protobuf:"bytes,3,opt,name=name,json=name,proto3" dynamodbav:"name,omitempty" json:"name,omitempty"`    OrgId            string        `protobuf:"bytes,4,opt,name=org_id,json=orgId,proto3" dynamodbav:"org_id,omitempty" json:"org_id,omitempty"`    AccountId        string        `protobuf:"bytes,7,opt,name=account_id,json=accountId,proto3" dynamodbav:"account_id,omitempty" json:"account_id,omitempty"`    Address          string        `protobuf:"bytes,9,opt,name=address,proto3" dynamodbav:"address,omitempty" json:"address,omitempty"`    BillingTitle     string        `protobuf:"bytes,10,opt,name=billing_title,json=billingTitle,proto3" dynamodbav:"billing_title,omitempty" json:"billing_title,omitempty"`}這段代碼不會(huì)驚慌,我會(huì)看到 DynamoDB 中的值。但是,omitempty從所有標(biāo)簽中刪除該子句后dynamodbav,我注意到現(xiàn)在失敗并出現(xiàn)以下錯(cuò)誤:ValidationException: Invalid attribute value type        status code: 400, request id: 6a626232-fcd4-4999-afe4-3df5769ce1b2我想使用默認(rèn)值而不是前者,NULL: true但我沒(méi)有看到任何序列化選項(xiàng)。有沒(méi)有辦法在不實(shí)現(xiàn) DynamoDB 封送器接口的情況下做到這一點(diǎn)?
查看完整描述

1 回答

?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊

經(jīng)過(guò)一番調(diào)查,我在這里Marshal找到了該函數(shù)的源代碼。據(jù)此,我可以設(shè)置一個(gè)名為的字段來(lái)告訴編碼器我希望將空字符串作為字符串發(fā)送,而不是作為空屬性發(fā)送。但是,如果我設(shè)置它,我不能直接使用, 。所以,我復(fù)制了它們并寫(xiě)了我自己的:NullEmptyStringMarshalMarshalMapMarshalList


func MarshalMap(in interface{}) (map[string]*dynamodb.AttributeValue, error) {

    av, err := getEncoder().Encode(in)

    if err != nil || av == nil || av.M == nil {

        return map[string]*dynamodb.AttributeValue{}, err

    }


    return av.M, nil

}


func getEncoder() *dynamodbattribute.Encoder {

    encoder := dynamodbattribute.NewEncoder()

    encoder.NullEmptyString = false

    return encoder

}


查看完整回答
反對(duì) 回復(fù) 2022-10-10
  • 1 回答
  • 0 關(guān)注
  • 94 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)