Java 如何在 dynamodb 中存储 JSON 对象或 JSON 数组而不将其转换为字符串?

Posted

技术标签:

【中文标题】Java 如何在 dynamodb 中存储 JSON 对象或 JSON 数组而不将其转换为字符串?【英文标题】:Java How can i store a JSON Object or JSON Array in dynamodb without converting it into a string? 【发布时间】:2018-06-25 17:27:17 【问题描述】:

所以我问这个的原因是有 400kb 的项目大小限制,如果我将 JSON 对象字符串化,它们会变得很大,为此我必须将它们分成 5-10 个部分或行。

【问题讨论】:

【参考方案1】:

一个字符串每个字母大约会占用一个字节,除非您的 JSON 对象有很多整数值(每个整数大约 4 个字节),否则您可能不会节省那么多空间。

如果您的 JSON 对象那么大,请考虑将对象拆分到数据库中的不同表中,并具有一对一的关系。

【讨论】:

那么你的意思是,即使我将它保存为一个对象,它仍然很可能超过 400kb 的限制? 是的,它可能是......很可能它会比 JSON 字符串表示略小,但不能保证......即像 BigInteger、BigDecimal 等对象在序列化中占用大约 60 个字节左右模式。可能有一些技巧可以减少序列化大小,但没有理由把那么大的复杂性放在那里。在您的情况下,最好考虑数据库结构。

以上是关于Java 如何在 dynamodb 中存储 JSON 对象或 JSON 数组而不将其转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在AWS DynamoDB中存储图像配置文件(jpg文件)和PDF文档?

如何将 AWS Cognito 用户池用户存储在数据库(例如 DynamoDB)中?

最佳方法:如何将 dynamodb 表导出到 csv 并将其存储在 s3

如何从 Java 中的 DynamoDB getItem 中获取特定属性值

DynamoDb 查询存储日期

如何在DynamoDB中访问关系数据(键与查询)