使用AWS CLI使用以下命令将以下JSON置于dynamo DB中:
aws dynamodb put-item --table-name ScreenList --item file://tableName.json
我得到参数验证失败Exception.I已经严格通过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": ""
}
}
}
]
}
}
答案 0 :(得分:0)
您似乎错误地定义了复杂类型。根据{{3}},你应该定义一个这样的列表:
"L": ["Cookies", "Coffee", 3.14159]
并且地图应该像这样定义:
"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定义AWS documentation。
<强>更新强>
现在您的列表定义不正确。你有:
"screenList":{
"L":[
{
"menu":{ ... },
"M":{ ... }
}
]
}
虽然它应该是:
"screenList":{
"L":[
{
"M":{ ... }
},
{
"M":{ ... }
},
]
}