使用 AWS CLI 和以下命令将以下 JSON 放入 dynamo 数据库中时:
aws dynamodb put-item --table-name ScreenList --item file://tableName.json
我收到参数验证失败异常。我已经严格浏览了 AWS 文档,但未能找到插入复杂 json 的示例。欢迎提供任何小帮助。
更新后的 Json :
{
"itemName": {
"S": "SCREEN_LIST"
},
"productName": {
"S": "P2P_MOBITEL"
},
"screenList": {
"L": [
{
"menu": {
"L": [
{
"M": {
"menuId": {
"N": "1"
},
"menuText": {
"S": "ENG_HEADING"
},
"menuType": {
"S": "Dynamic"
}
}
}
]
},
"M": {
"screenFooter": {
"S": "F_LANGUAGE_CHANGE"
},
"screenHeader": {
"S": "H_LANGUAGE_CHANGE"
},
"screenId": {
"S": "LANGUAGE_CHANGE"
},
"screenType": {
"S": ""
}
}
}
]
}
}
最佳答案
您似乎错误地定义了复杂类型。根据AWS documentation你应该定义一个像这样的列表:
"L": ["Cookies", "Coffee", 3.14159]
map 应该这样定义:
"M": {"Name": {"S": "Joe"}, "Age": {"N": "35"}}
这意味着 menu
映射应该这样定义:
"menu": {
"L": [
{
"M": {
"menuId": {"N" :"1"},
"menuText": {"S" :"PACKS_SCREEN"},
"menuType": {"S" :"Dynamic"}
}
}
]
}
注意“M”和“L”属性。
您应该以类似的方式更改 JSON 的其余部分。
您可以找到完整的 JSON 定义 here in the Options section .
更新
现在您的列表定义不正确。你有:
"screenList":{
"L":[
{
"menu":{ ... },
"M":{ ... }
}
]
}
虽然应该是:
"screenList":{
"L":[
{
"M":{ ... }
},
{
"M":{ ... }
},
]
}
关于json - 使用 AWS CLI 将使用 Json 文件的项目放入 AWS DynamoDB 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45481673/