2016-05-27 7 views
1

例えば、私のようなJSON配列があります。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" 
}] 

DynamoDBにjsonアレイを追加する方法はありますか?

+0

を。あなたがデータを取得するとき、彼らはキー値のペアであなたを与える。彼らがサポートしているデータ型を調べることをお勧めします。現在、色の配列を格納するwntとし、List型の属性をテーブルに作成することができます。 –

答えて

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

1

カップル:

  • あなたの声明、「DynamoDBの勧告をする "キー名" を追加するようですarray 'は真ではありません。
  • カスタムマーシャラを使用してpayloadをJSONに変換することを提案するnotionquest @がうまくいくが、これは必須ではない。

DynamoDBは、リストデータ型をネイティブにサポートしています。 hereを確認してください。

あなたはJavaでDynamoDBMapperライブラリを使用している場合は、あなたのような何かを行うことができます:こんにちは、DynamoDBの自体はJSON形式でデータを格納

@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 
    } 
} 
関連する問題