【问题标题】:AWS DynamoDB on Android: Inserting JSON Directly?Android 上的 AWS DynamoDB:直接插入 JSON?
【发布时间】:2015-08-04 15:53:00
【问题描述】:

我正在尝试使用 AWS DynamoDB 来存储一些灵活的文档模型数据。因为文档模型是有目的的灵活的,所以我不想受到构建显式 @DynamoDBTable 规范的限制,而是希望将 JSON 直接插入到表中。这可能吗?我已经在低位和高位搜索了这个信息。它从这里出现:

AWS DynamoDB and Android Development (Put Item into table in DynamoDB)

答案可能是否定的。

【问题讨论】:

  • Xamarin 支持它

标签: android json amazon-web-services amazon-dynamodb nosql


【解决方案1】:

DynamoDB 确实支持灵活的 JSON 文档,但有一个问题,您需要确保在插入文档之前在文档中指定 Hash 或 Hash/Range 键。

由于您想避免使用带注释的 Java 对象,因此您需要的 API 就是 Table 类上的 putItem 方法。此方法允许您插入一个Item,您可以使用fromJSON 方法从JSON 字符串构造它。

代码如下所示:

DynamoDB dynamodb = new DynamoDB(client);
Table myTable = dynamodb.getTable(tableName);

// Make sure your object includes the hash or hash/range key
String myJsonString = "{\"foo\": \"bar\", \"one\": \"two\"}";

// Convert the JSON into an object
Item myItem = Item.fronJSON(myJsonString);

// Insert the Object
table.putItem(myItem);

编辑

我的立场是正确的,上面的代码 sn-p 是特定于 AWS Java SDK 的,我错误地认为 fromJSON 方法在 AWS Android SDK 中可用。

【讨论】:

  • 谢谢,我认为这有助于确定这不能在 Android 中完成(目前)。 com.amazonaws.services.dynamodbv2.document.Item 不附带 Android SDK,尝试导入 Java SDK 会导致 Eclipse 崩溃:P
【解决方案2】:

是的,您可以将整个 json 文档存储到单个“字段”中

JSON 文档支持:您现在可以存储整个 JSON 格式 文档作为单个 DynamoDB 项目(以新增加的 400 KB 大小限制,我稍后会谈到)。

https://aws.amazon.com/blogs/aws/dynamodb-update-json-and-more/

【讨论】:

  • 是的,但新的 DynamoDB 文档模型应该允许 JSON 文档中的字段用作相关 DynamoDB 表的属性。如果我必须提前定义特定的文档模型,这似乎会削弱 NoSQL 方法的一些优势。
【解决方案3】:

你是对的。 AWS SDK for Android 目前不支持您尝试做的事情。我们已将此记录为功能请求,并将尝试将其包含在未来的版本中。感谢您的反馈!

【讨论】:

  • 添加此功能的任何时间表?
【解决方案4】:

如果您使用 Java 为原生 Android 编写代码,则以下答案是正确的 - 适用于 Android 的 AWS 开发工具包不支持从 JSON 上传。但是,如果您在 Xamarin Forms 中编写应用程序,则可以使用 AWSSDK 的跨平台调用来支持 fromJSON 插入的 Xamarin Forms。

【讨论】:

    猜你喜欢
    • 2021-07-09
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多