| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // Package dynamodbattribute provides marshaling utilities for marshaling to
- // dynamodb.AttributeValue types and unmarshaling to Go value types. These
- // utilities allow you to marshal slices, maps, structs, and scalar values
- // to and from dynamodb.AttributeValue. These are useful when marshaling
- // Go value tyes to dynamodb.AttributeValue for DynamoDB requests, or
- // unmarshaling the dynamodb.AttributeValue back into a Go value type.
- //
- // Marshal Go value types to dynamodb.AttributeValue: See (ExampleMarshal)
- //
- // type Record struct {
- // MyField string
- // Letters []string
- // A2Num map[string]int
- // }
- //
- // ...
- //
- // r := Record{
- // MyField: "dynamodbattribute.Marshal example",
- // Letters: []string{"a", "b", "c", "d"},
- // A2Num: map[string]int{"a": 1, "b": 2, "c": 3},
- // }
- // av, err := dynamodbattribute.Marshal(r)
- // fmt.Println(av, err)
- //
- // Unmarshal dynamodb.AttributeValue to Go value type: See (ExampleUnmarshal)
- //
- // r2 := Record{}
- // err = dynamodbattribute.Unmarshal(av, &r2)
- // fmt.Println(err, reflect.DeepEqual(r, r2))
- //
- // Marshal Go value type for DynamoDB.PutItem:
- //
- // sess, err := session.NewSession()
- // if err != nil {
- // fmt.Println("Failed create session", err)
- // return
- // }
- //
- // svc := dynamodb.New(sess)
- // item, err := dynamodbattribute.MarshalMap(r)
- // if err != nil {
- // fmt.Println("Failed to convert", err)
- // return
- // }
- // result, err := svc.PutItem(&dynamodb.PutItemInput{
- // Item: item,
- // TableName: aws.String("exampleTable"),
- // })
- //
- //
- //
- // The ConvertTo, ConvertToList, ConvertToMap, ConvertFrom, ConvertFromMap
- // and ConvertFromList methods have been deprecated. The Marshal and Unmarshal
- // functions should be used instead. The ConvertTo|From marshallers do not
- // support BinarySet, NumberSet, nor StringSets, and will incorrect marshal
- // binary data fields in structs as base64 strings.
- //
- // The Marshal and Unmarshal functions correct this behavior, and removes
- // the reliance on encoding.json. `json` struct tags are still supported. In
- // addition support for a new struct tag `dynamodbav` was added. Support for
- // the json.Marshaler and json.Unmarshaler interfaces have been removed and
- // replaced with have been replaced with dynamodbattribute.Marshaler and
- // dynamodbattribute.Unmarshaler interfaces.
- //
- // `time.Time` is marshaled as RFC3339 format.
- package dynamodbattribute
|