Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在DynamoDB中存储对象数组_Java_Json_Nosql_Amazon Dynamodb - Fatal编程技术网

Java 如何在DynamoDB中存储对象数组

Java 如何在DynamoDB中存储对象数组,java,json,nosql,amazon-dynamodb,Java,Json,Nosql,Amazon Dynamodb,我知道当DynamoDB处于以下类型时如何将项目插入其中 例如: { “id”:“10021”, AppName“testingApp” } 但我想插入如下示例中的对象数组: 例如: 如果Dynamo DB无法存储上述类型的JSON数据,那么您能否建议哪个DB更适合存储此类输入?Dynamo DB可以存储JSON数据,也可以存储您希望插入的数据格式。 有两种方法可用于在插入DynamoDB时格式化数据,以及在将DB数据检索到所需的JSON方法时格式化数据。 这些方法是:输入和输出 我分享了两个A

我知道当DynamoDB处于以下类型时如何将项目插入其中

例如: { “id”:“10021”, AppName“testingApp” }

但我想插入如下示例中的对象数组:

例如:


如果Dynamo DB无法存储上述类型的JSON数据,那么您能否建议哪个DB更适合存储此类输入?

Dynamo DB可以存储JSON数据,也可以存储您希望插入的数据格式。 有两种方法可用于在插入DynamoDB时格式化数据,以及在将DB数据检索到所需的JSON方法时格式化数据。 这些方法是:
输入
输出

我分享了两个AWS lambda代码的示例片段,希望这能解决您的问题

通过以下方法,您可以将JSON数据转换为DynamoDB支持的格式,然后将其插入:

const AWS=require('AWS-sdk');
//设置区域
AWS.config.update({地区:'ap-south-1'});
//创建DynamoDB服务对象
const ddb=new AWS.DynamoDB.DocumentClient();
const getParams=(updateTasks)=>{
常量参数={
TableName:“todo应用程序”,
关键:{
“用户ID”:”anandujjwal13@gmail.com",
},
UpdateExpression:“设置任务=:updatedTasks”,
表达式属性值:{
“:updatedTasks”:updatedTasks
},
ReturnValues:“更新的\新的”
};
返回参数;
}
常量dbQuery=(newTask)=>{
让updateTask=AWS.DynamoDB.Converter.input(newTask,true);
log('updated task formatted',updated task);
设params=getParams(updateTask);
返回新承诺((解决、拒绝)=>{
ddb.update(参数、函数(错误、数据){
如果(错误){
日志(“错误”,err);
拒绝(错误);
}否则{
console.log(“成功”,数据);
解析(data.Item)
}
});
});
}
exports.updateTodoJobsOfAUser=异步(事件)=>{
常量插入对象=[
{
声明:'learn Dynamo DB',id:23
},
{
声明:“学习无服务器架构”,id:24
}]
const data=wait dbQuery(insertObject);
常数响应={
状态代码:200,
正文:JSON.stringify(数据)
};
返回响应;

};尝试在列表属性中使用映射属性


list为您提供了一个数组,map为您提供了一个键值对对象

您试过了吗?我如何创建一个可以在AWS控制台上以上述格式存储JSON数据的表在AWS控制台上您只需打开该表,单击“创建项”复制/粘贴或键入JSON对象即可。是的,我尝试了相同的方法,但没有看到它存储了预期的值(这是问题中的格式)。示例将帮助OP理解您的意思。
{
"testArray": [
{ "id" : "testID",
  "applicationName" : "Myapp"
},
 {
 "id" : "testID1",
  "applicationName" : "Myapp123"
} ]}