gpt4 book ai didi

amazon-web-services - 如何在 AWS API Gateway 中将对象转换为 JSON?

转载 作者:行者123 更新时间:2023-12-05 05:05:45 25 4
gpt4 key购买 nike

我有一些简单的数据要使用 API 网关进行转换:

{
"data": [
{"id":"1", "name":"Foo"},
{"id":"2", "name":"Bar"},
{"id":"3", "name":"Dead"},
{"id":"4", "name":"Beef"}
]
}

我能够循环数据:

#foreach($elem in $input.path('$.data'))
{
"Data": $elem,
"Foo": "Bar"
}#if($foreach.hasNext),#end
#end

预期的结果是:

{"Data": {"id":"1", "name":"Foo"}, "Foo": "Bar"},
{"Data": {"id":"2", "name":"Bar"}, "Foo": "Bar"},
{"Data": {"id":"3", "name":"Dead"}, "Foo": "Bar"},
{"Data": {"id":"4", "name":"Beef"}, "Foo": "Bar"}

然而,实际的结果是:

{"Data": {id=1, name=Foo}, "Foo": "Bar"},
{"Data": {id=2, name=Bar}, "Foo": "Bar"},
{"Data": {id=3, name=Dead}, "Foo": "Bar"},
{"Data": {id=4, name=Beef}, "Foo": "Bar"}

$elem 生成 {id=1, name=Foo} 这似乎是对象被字符串化的内容。我想把它放在 JSON 中,我该如何实现?

我已经尝试过 $elem.stringify()$input.json($elem)$elem.json()但这不起作用。

最佳答案

我想出了一个关于 $index 以及 Apache Velocity 工作原理的奇怪解决方法:

#foreach($elem in $input.path('$.data'))
#set($pathBegin = "$.data[")
#set($pathEnd = "]")
#set($currentIndex = $foreach.index)
#set($thePath = "$pathBegin$currentIndex$pathEnd")
#set($elemJson = $input.json($thePath))
{
"Data": $elemJson,
"Foo": "Bar"
}#if($foreach.hasNext),#end
#end

这可能会更优化,但它确实有效并打印出预期的结果。

关于amazon-web-services - 如何在 AWS API Gateway 中将对象转换为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60380905/

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