登录
首页 >  Golang >  Go问答

关系始终为零在执行 dynamoattribute.UnmarshalMap时

来源:stackoverflow

时间:2024-03-29 11:24:11 118浏览 收藏

从现在开始,努力学习吧!本文《关系始终为零在执行 dynamoattribute.UnmarshalMap时》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我有两个结构。样品和测试。 “样本”具有“测试”类型的关系。当我尝试执行“dynamoattribute.unmarshalmap”时,关系始终为零。您能否建议如何填充关系(在本例中为“测试”)?

package main

import (
    "fmt"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/service/dynamodb"
    "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute"
)

type Sample struct {
    SampleId string `jsonapi:"attr,sampleId,omitempty" dynamodbav:"sample_id"`
    Test     *Test  `jsonapi:"relation,test"`
}

type Test struct {
    TestId string `jsonapi:"attr,testId,omitempty" dynamodbav:"test_id"`
}

func main() {
    var m map[string]*dynamodb.AttributeValue
    m = make(map[string]*dynamodb.AttributeValue)

    m["sample_id"] = &dynamodb.AttributeValue{
        S: aws.String("sample1"),
    }

    m["test_id"] = &dynamodb.AttributeValue{
        S: aws.String("test"),
    }

    sam := Sample{}

    err := dynamodbattribute.UnmarshalMap(m, &sam)
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(sam)
}

解决方案


package main

import (
    "fmt"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/service/dynamodb"
    "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute"
)

type Sample struct {
    SampleId string `jsonapi:"attr,sampleId,omitempty" dynamodbav:"sample_id"`
    Test     *Test  `jsonapi:"relation,test"`
}

type Test struct {
    TestId string `jsonapi:"primary,testId" dynamodbav:"test_id"`
}


func main() {
    var m map[string]*dynamodb.AttributeValue
    m = make(map[string]*dynamodb.AttributeValue)   

    m["sample_id"] = &dynamodb.AttributeValue{
        S: aws.String("sample1"),
    }

    var mTest map[string]*dynamodb.AttributeValue
    mTest = make(map[string]*dynamodb.AttributeValue)

    mTest["test_id"] = &dynamodb.AttributeValue{
        S: aws.String("test1"),
    }

    m["test"] = &dynamodb.AttributeValue{
        M: mTest,
    }

    sam := Sample{}

    err := dynamodbattribute.UnmarshalMap(m, &sam)
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(sam)
}

本篇关于《关系始终为零在执行 dynamoattribute.UnmarshalMap时》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>