Golang DynamoDB UnmarshalListOfMaps Возвращает массив пустых - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть таблица продуктов DynamoDB (id (int), active (bool), name (string), price (int)), и когда я получаю и пытаюсь разобрать список, он возвращается пустым.

[{},{}]

Структура:

type Product struct {
id     int
active bool
name   string
price  int }

А код для демаршала здесь:

    params := &dynamodb.ScanInput{
    TableName: aws.String("Products"),
}
result, err := service.Scan(params)
if err != nil {
    fmt.Errorf("failed to make Query API call, %v", err)
}

var products = []Product{}

var error = dynamodbattribute.UnmarshalListOfMaps(result.Items, &products)

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 10 декабря 2018

Только неотобранные поля могут быть не маршалированными.

Сделайте ваши поля структуры общедоступными, используя заглавные буквы, и используйте атрибут json, чтобы сопоставить их со значениями данных:

type Product struct {
    ID     int    `json:"id"`
    Active bool   `json:"active"`
    Name   string `json:"name"`
    Price  int    `json:"price"`
}
...