gpt4 book ai didi

amazon-web-services - 如何在 VTL 中处理 AWS APIG 映射模板中的嵌套列表

转载 作者:行者123 更新时间:2023-12-04 02:13:52 25 4
gpt4 key购买 nike

(这是我的模型方案:

{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "QuestionsModel",
"type": "array",
"items": {
"type": "object",
"properties": {
"section_name": { "type": "string" },
"options" : {
"type" : "array",
"items" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
}

这是映射模板:

#set($inputRoot = $input.path('$'))
[
#foreach($question in $inputRoot) {
"section_name" : "$question.section_name.S",
"options" : [
#foreach($items in $question.options.L) {
[
#foreach($item in $items.L) {
"$item.S"
}#if($foreach.hasNext),#end
#end
]
}#if($foreach.hasNext),#end
#end
]

}#if($foreach.hasNext),#end

#end
]

尽管此语法正确地映射了数据,但它导致“options”成为一个空数组。

如果没有指定“选项”,那么我的 iOS 应用会收到有效的 JSON。但是,当我为“选项”尝试各种语法时,我要么得到无效的 JSON,要么得到“内部服务错误”,而 CloudWatch 也没有更好地提供 Unable to transform response

有效选项用以下内容填充:{L=[{"L":[{"S":"1"},{"S":"Dr"}]},{"L ":[{"S":"2"},{"S":"Mr"}]},{"L":[{"S":"3"},{"S":"Ms"} ]},{"L":[{"S":"4"},{"S":"夫人"}]},{"L":[{"S":"5"},{"S ":"Prof."}]}]} 由 Lambda 函数提供。

此时我只能得出结论,API Gateway VTL 不支持嵌套数组。

最佳答案

用于建模的 AWS iOS SDK 不支持数组的数组。

您必须在任何嵌套数组之间定义一个字典。因此,而不是 array/object/array/array 你滑入一个额外的“awshack”对象:array/object/array/awshack-object/array

{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "QuestionsModel",
"type": "array",
"items": {
"type": "object",
"properties": {
"section_name": { "type": "string" },
"options" : { "type" : "array",
"items" : {
"type" : "object",
"properties" : {
"awshack" : {
"type" : "array",
"items" : { "type" : "string" }
}
}
}

}
}
}
}

在映射模板中,“awshack”被滑入最内层循环之外。

#foreach($items in $question.options.L)
{"awshack" :
[#foreach($item in $items.L)
"$item.S"#if($foreach.hasNext),#end
#end
#if($foreach.hasNext),#end
]}#if($foreach.hasNext),#end
#end

Amazon confirms this limitation .

关于amazon-web-services - 如何在 VTL 中处理 AWS APIG 映射模板中的嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35771371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com