attributevalue.UnmarshalListOfMaps doesn't support json key diff from struct field name
tsesck opened this issue · 4 comments
Acknowledgements
- I have searched (https://github.com/aws/aws-sdk/issues?q=is%3Aissue) for past instances of this issue
- I have verified all of my SDK modules are up-to-date (you can perform a bulk update with
go get -u github.com/aws/aws-sdk-go-v2/...
)
Describe the bug
type MyStruct struct {
MovieTitle string. json:"movie_title"
}
var mystructs []MyStruct
When I run attributevalue.UnmarshalListOfMaps(scanOutput.Items, &mystructs), all MovieTitles are empty. If I change the field to Movie_Title, then it works
Expected Behavior
It used to work in v1 when I use
dynamodbattribute.UnmarshalListOfMaps
Current Behavior
type MyStruct struct {
MovieTitle string. json:"movie_title"
}
var mystruct MyStruct
When I run attributevalue.UnmarshalListOfMaps(scanOutput.Items, &mystruct), MovieTitle is empty. If I change the field to Movie_Title, then it works
Reproduction Steps
type MyStruct struct {
MovieTitle string. json:"movie_title"
}
var mystruct MyStruct
When I run attributevalue.UnmarshalListOfMaps(scanOutput.Items, &mystruct), MovieTitle is empty. If I change the field to Movie_Title, then it works
Possible Solution
No response
Additional Information/Context
No response
AWS Go SDK V2 Module Versions Used
$ go mod graph | grep github.com/aws
main github.com/aws/aws-sdk-go-v2@v1.26.0
main github.com/aws/aws-sdk-go-v2/config@v1.27.9
main github.com/aws/aws-sdk-go-v2/credentials@v1.17.9
main github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue@v1.13.11
main github.com/aws/aws-sdk-go-v2/feature/ec2/imds@v1.16.0
main github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4
main github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4
main github.com/aws/aws-sdk-go-v2/internal/ini@v1.8.0
main github.com/aws/aws-sdk-go-v2/service/dynamodb@v1.31.0
main github.com/aws/aws-sdk-go-v2/service/dynamodbstreams@v1.20.3
main github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.11.1
main github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery@v1.9.5
main github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.11.6
main github.com/aws/aws-sdk-go-v2/service/sso@v1.20.3
main github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.23.3
main github.com/aws/aws-sdk-go-v2/service/sts@v1.28.5
main github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2@v1.26.0 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2@v1.26.0 github.com/jmespath/go-jmespath@v0.4.0
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/credentials@v1.17.9
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/feature/ec2/imds@v1.16.0
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/internal/ini@v1.8.0
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/service/sso@v1.20.3
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.23.3
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/service/sts@v1.28.5
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.11.1
github.com/aws/aws-sdk-go-v2/config@v1.27.9 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.11.6
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/aws-sdk-go-v2/feature/ec2/imds@v1.16.0
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/aws-sdk-go-v2/service/sso@v1.20.3
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.23.3
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/aws-sdk-go-v2/service/sts@v1.28.5
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.11.1
github.com/aws/aws-sdk-go-v2/credentials@v1.17.9 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.11.6
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue@v1.13.11 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue@v1.13.11 github.com/aws/aws-sdk-go-v2/service/dynamodb@v1.31.0
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue@v1.13.11 github.com/aws/aws-sdk-go-v2/service/dynamodbstreams@v1.20.3
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue@v1.13.11 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue@v1.13.11 github.com/jmespath/go-jmespath@v0.4.0
github.com/aws/aws-sdk-go-v2/feature/ec2/imds@v1.16.0 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/feature/ec2/imds@v1.16.0 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/service/dynamodb@v1.31.0 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/service/dynamodb@v1.31.0 github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4
github.com/aws/aws-sdk-go-v2/service/dynamodb@v1.31.0 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4
github.com/aws/aws-sdk-go-v2/service/dynamodb@v1.31.0 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.11.1
github.com/aws/aws-sdk-go-v2/service/dynamodb@v1.31.0 github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery@v1.9.5
github.com/aws/aws-sdk-go-v2/service/dynamodb@v1.31.0 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/service/dynamodb@v1.31.0 github.com/jmespath/go-jmespath@v0.4.0
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams@v1.20.3 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams@v1.20.3 github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams@v1.20.3 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams@v1.20.3 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.11.1 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery@v1.9.5 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery@v1.9.5 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.11.6 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.11.6 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/service/sso@v1.20.3 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/service/sso@v1.20.3 github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4
github.com/aws/aws-sdk-go-v2/service/sso@v1.20.3 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4
github.com/aws/aws-sdk-go-v2/service/sso@v1.20.3 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.23.3 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.23.3 github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4
github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.23.3 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4
github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.23.3 github.com/aws/smithy-go@v1.20.1
github.com/aws/aws-sdk-go-v2/service/sts@v1.28.5 github.com/aws/aws-sdk-go-v2@v1.26.0
github.com/aws/aws-sdk-go-v2/service/sts@v1.28.5 github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.4
github.com/aws/aws-sdk-go-v2/service/sts@v1.28.5 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.4
github.com/aws/aws-sdk-go-v2/service/sts@v1.28.5 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.11.1
github.com/aws/aws-sdk-go-v2/service/sts@v1.28.5 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.11.6
github.com/aws/aws-sdk-go-v2/service/sts@v1.28.5 github.com/aws/smithy-go@v1.20.1
src$
Compiler and Version used
$ go version go version go1.21.7 darwin/arm64
Operating System and version
macOS Sonoma 14.3.1
attributevalue
struct tags are keyed under dynamodbav
:
type MyStruct struct {
MovieTitle string `dynamodbav:"movie_title"`
}
@lucix-aws It worked. Thanks.
This issue is now closed. Comments on closed issues are hard for our team to see.
If you need more assistance, please open a new issue that references this one.
replacing json with dynamodbav worked. thanks.