翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
拡張ドキュメントを構築する
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")); }