拡張ドキュメントを構築する - AWS SDK for Java 2.x

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

拡張ドキュメントを構築する

EnhancedDocument は、ネストされた属性を持ち、複雑な構造を持つドキュメントタイプのオブジェクトを表します。EnhancedDocument には、DocumentTableSchema に指定されたプライマリキー属性と一致する最上位の属性が必要です。残りの内容は任意で、最上位の属性だけでなく、深くネストされた属性で構成することもできます。

EnhancedDocument インスタンスを作成するには、複数の方法で要素を追加できるビルダーを使用します。

JSON 文字列から構築する

JSON 文字列を使用して、1 つのメソッド呼び出しに EnhancedDocument を構築できます。次のスニペットは、jsonPerson() ヘルパーメソッドから返された JSON 文字列から EnhancedDocument を作成します。この jsonPerson() メソッドは、前に示した person オブジェクトの JSON 文字列バージョンを返します。

EnhancedDocument document = EnhancedDocument.builder() .json( jsonPerson() ) .build());

個々の要素から構築する

また、ビルダーのタイプセーフメソッドを使用して個々のコンポーネントから EnhancedDocument インスタンスを構築することもできます。

次の例では、前の例の JSON 文字列から作成された拡張ドキュメントと同様の person 拡張ドキュメントを作成します。

/* Define the shape of an address map whose JSON representation looks like the following. Use 'addressMapEnhancedType' in the following EnhancedDocument.builder() to simplify the code. "home": { "zipCode": "00000", "city": "Any Town", "state": "FL", "street": "123 Any Street" }*/ EnhancedType<Map<String, String>> addressMapEnhancedType = EnhancedType.mapOf(EnhancedType.of(String.class), EnhancedType.of(String.class)); // Use the builder's typesafe methods to add elements to the enhanced document. EnhancedDocument personDocument = EnhancedDocument.builder() .putNumber("id", 50) .putString("firstName", "Shirley") .putString("lastName", "Rodriguez") .putNumber("age", 53) .putNull("nullAttribute") .putJson("phoneNumbers", phoneNumbersJSONString()) /* Add the map of addresses whose JSON representation looks like the following. { "home": { "zipCode": "00000", "city": "Any Town", "state": "FL", "street": "123 Any Street" } } */ .putMap("addresses", getAddresses(), EnhancedType.of(String.class), addressMapEnhancedType) .putList("hobbies", List.of("Theater", "Golf"), EnhancedType.of(String.class)) .build();
private static String phoneNumbersJSONString() { return " [" + " {" + " \"type\": \"Home\"," + " \"number\": \"555-0140\"" + " }," + " {" + " \"type\": \"Work\"," + " \"number\": \"555-0155\"" + " }" + " ]"; } private static Map<String, Map<String, String>> getAddresses() { return Map.of( "home", Map.of( "zipCode", "00002", "city", "Any Town", "state", "ME", "street", "123 Any Street")); }