如何在dynamodb中创建一个json数组?

时间:2016-05-27 02:45:00

标签: arrays json amazon-dynamodb

例如,我有一个json数组,如:

[
{
    color: "red",
    value: "#f00"
},
{
    color: "blue",
    value: "#00f"
},
{
    color: "cyan",
    value: "#0ff"
}]

似乎dynamoDB的建议是在数组中添加“键名”。

[
color1: {
    color: "red",
    value: "#f00"
},
color2: {
    color: "blue",
    value: "#00f"
},
color3: {
    color: "cyan",
    value: "#0ff"
}]

有没有不同的方法将json数组添加到DynamoDB中?

2 个答案:

答案 0 :(得分:2)

首先澄清几点:

  • 您的陈述,'似乎dynamoDB建议添加一个"密钥名称"到阵列',不是真的。
  • notionquest @使用自定义编组器将有效负载转换为JSON的建议可行,但并非必要。

DynamoDB本身支持List数据类型。检查here

如果您在Java中使用DynamoDBMapper库,则可以执行以下操作:

@DynamoDBTable(tableName="...")
public class ... {  // POJO
  private List<Color> colors;

  ... // Getters and setters

  @DynamoDBDocument
  public static class Color {
    private String name;
    private String value;

    ... // Getters and setters
  }
}

答案 1 :(得分:1)

如果您使用的是AWS-SDK Java,则可以对复杂对象进行编组,以将其作为JSON存储在DynamoDB中。有关详细信息,请参阅以下博客。具体来说,我指的是: -

@DynamoDBMarshalling (marshallerClass = PhoneNumberMarshaller.class)
class PhoneNumberJSONMarshaller extends JsonMarshaller<PhoneNumber>
{ }

https://java.awsblog.com/post/Tx1K7U34AOZBLJ2/Using-Custom-Marshallers-to-Store-Complex-Objects-in-Amazon-DynamoDB