DynamoDB:如何创建一个具有嵌套JSON结构的表格?

9 浏览
0 Comments

DynamoDB:如何创建一个具有嵌套JSON结构的表格?

我想在DynamoDB中创建一个具有以下结构的表。

{

"CartId": 123,

"UserId": 356,

"CartItems": [

{

"ProductId": 100,

"Quantity": 50

},

{

"ProductId": 121,

"Quantity": 51

}

]

}

在教程和文档中,到处都说我们只能在表中使用以下类型的属性:

  1. 字符串集合
  2. 数字集合
  3. 二进制集合

我想不出在DynamoDB中存储上述结构的方法。你能帮忙一下吗?

我正在使用Java的对象映射器API。如果能告诉我如何创建一个可以映射到这个特定表结构的类,那就太好了。

0
0 Comments

在这个问题中,用户想知道如何在DynamoDB中创建一个具有嵌套JSON结构的表。解决这个问题的方法是通过创建一个与所需结构相匹配的复杂Java对象,然后使用更新方法将该对象添加到DynamoDB项中。

首先,用户需要创建一个复杂的Java对象,该对象的结构与所需的结构相匹配。在这个例子中,用户创建了一个名为"cartItems"的列表,其中包含多个HashMap对象,每个HashMap对象都包含"ProductId"和"Quantity"两个属性。

接下来,用户需要使用一个辅助方法将复杂对象添加到DynamoDB项中。这个辅助方法接受三个参数:id(项的唯一标识符),newAttribute(要更新的属性名称)和newValue(要更新的属性的新值)。该方法使用UpdateItemSpec对象构建一个更新请求,并将新值添加到值映射中。最后,用户可以调用这个辅助方法来更新DynamoDB项。

更新完成后,用户可以在DynamoDB中看到新添加的cartItems属性,它以嵌套的JSON格式显示。

需要注意的是,这个方法没有测试upsert场景,因为在过去的经验中,似乎没有upsert功能可用。用户还提到了有关读取深层嵌套项的一些文档链接,供其他人参考。

希望这篇文章对大家有所帮助。

0
0 Comments

问题的原因是想要在DynamoDB中创建一个具有嵌套JSON结构的表。作者想要存储一个深度嵌套的JSON文档,并且希望在Java实体中定义列属性来实现。

解决方法是在Java实体中定义一个私有成员变量,类型为List>,用于表示嵌套的JSON结构。作者提供了一个示例输入JSON,并将其嵌套的JSON结构存储在DynamoDB中。

以下是解决方法的代码示例:

private List> pageData;

输入的JSON如下:

{

"userId": 359628,

"platform": "learn-web",

"inactive_duration": 0,

"total_time": 15,

"device_type": "web",

"page_data": [{

"page_details": {

"page_type": "segmentView",

"time": 15,

"segment_id": 65590,

"session_id": 13140,

"module_id": 4363

},

"items": [{

"type": "component",

"id": 267307,

"sub_type": "video",

"time": 10,

"metadata": {

"lastPlaybackRate": 1,

"currentTime": 0,

"isLocked": false,

"video": {

"videoType": "BRIGHTCOVE",

"viewingTime": 156,

"videoSize": 7120441,

"url": "5378655747001",

"URL": "5378655747001"

}

}

}]

}]

}

还有一个链接,以展示存储在DynamoDB中的JSON数据的快照。

请注意,这种解决方法可能不适用于所有情况。

0
0 Comments

在使用DynamoDB创建具有嵌套JSON结构的表时,可能会遇到以下问题和解决方法。

问题的原因:

在DynamoDB中创建具有嵌套JSON结构的表时,可能会遇到如何映射JSON数据到POJO(Plain Old Java Object)的问题。这可能涉及到使用Maven依赖、创建POJO和创建repository。

解决方法:

下面是解决该问题的步骤:

1. 添加Maven依赖:

在项目的pom.xml文件中添加以下Maven依赖:


    com.amazonaws
    aws-java-sdk-dynamodb
    1.11.186

2. 创建POJO:

创建一个POJO类,例如Customer类,并在该类中包含嵌套的JSON结构。例如:

(tableName = "Customer")
public class Customer {
    private String id;
    private String firstName;
    private List fooList;
}
public static class Foo {
    private String name;
}

3. 创建repository:

创建一个repository接口,该接口应继承CrudRepository,并指定POJO类和主键类型。例如:

public interface CustomerRepository extends CrudRepository {
}

4. 保存数据:

使用repository的save方法来保存数据。例如:

customerRepository.save(customer);

这样保存的数据将类似于以下JSON结构:

{

"firstName": "Test",

"fooList": [

{

"name": "foo"

},

{

"name": "foo2"

}

],

"id": "e57dd681-8608-4712-a39a-f3e0f31a5e27"

}

在使用上述解决方法时,如果向内部类中添加新字段,那么这些字段也将存在于DynamoDB中。此外,如果需要将通用的JSON映射到POJO中,可以使用类似的方法。

0