amazon-dynamodb - 无法解析 JSON 文档:无法识别的令牌“$util”:期待(“true”、“false”或“null”)
问题描述
我正在尝试使用带有过滤器的查询:
query queryPitchesByApprovedIndex($approved: Boolean = true) {
queryPitchesByApprovedIndex(approved: $approved) {
items {
id
}
}
}
AppSync 制作的映射模板如下所示:
{
"version": "2017-02-28",
"operation": "Query",
"query": {
"expression": "#approved = :approved",
"expressionNames": {
"#approved": "approved",
},
"expressionValues": {
":approved": {"B": $util.dynamodb.toBinary($ctx.args.approved)},
},
},
"index": "approved-index",
"limit": $util.defaultIfNull($ctx.args.first, 20),
"nextToken": $util.toJson($util.defaultIfNullOrEmpty($ctx.args.after, null)),
"scanIndexForward": true,
"select": "ALL_ATTRIBUTES",
}
我得到的错误是:
无法解析 JSON 文档:'Unrecognized token '$util': was expecting ('true', 'false' or 'null')\n at [Source: (String)\"{\n \"version\": \"2017-02-28\",\n \"操作\": \"查询\",\n \"查询\": {\n \"表达式\": \"#approved = :approved\" ,\n \"expressionNames\": {\n \"#approved\": \"approved\",\n },\n \"expressionValues\": {\n \":approved\": {\" B\": $util.dynamodb.toBinary($ctx.args.approved)},\n },\n },\n \"index\": \"approved-index\",\n \"limit\ ": 20,\n \"nextToken\": null,\n \"scanIndexForward\": true,\n \"select\": \"ALL_ATTRIBUTES\",\n}\"; 行:10,列:
知道我该如何解决吗?
解决方案
$util.dynamodb.toBinary(String data)
将 aString
作为输入,但您正在传递 a Boolean
,这就是它无法评估的原因。
这是很好的反馈,我将与团队核实是否可以使实用程序更宽松并采用布尔值$util.dynamodb.toBinary(Boolean data)
在此期间,这是一个可能的解决方法:
#if($ctx.args.approved)
#set($approved = $util.dynamodb.toBinaryJson("true"))
#else
#set($approved = $util.dynamodb.toBinaryJson("false"))
#end
{
"version": "2017-02-28",
"operation": "Query",
"query": {
"expression": "#approved = :approved",
"expressionNames": {
"#approved": "approved",
},
"expressionValues": {
":approved": $approved
},
},
"index": "approved-index",
"limit": $util.defaultIfNull($ctx.args.first, 20),
"nextToken": $util.toJson($util.defaultIfNullOrEmpty($ctx.args.after, null)),
"scanIndexForward": true,
"select": "ALL_ATTRIBUTES",
}
推荐阅读
- python - Python Tkinter,无法将checkbutton的值作为孩子
- android-layout - 如何在图像仍为白色的情况下将 Android 设备导航栏颜色变为白色
- python - 乌龟的动画不超过一个字符
- image - 在 Flutter 中将图像转换为地图
- android - 无法模拟进程死亡
- docker - Docker jrcs/letsencrypt-nginx-proxy-companion 没有生成正确的证书
- reactjs - 打字稿严格的布尔表达式错误
- c# - JWT 不记名令牌:“观众 'api://...' 无效”
- c++ - C++ 迭代器是否有可能存在间隙而不是线性的?
- python - Python 3.10:ModuleNotFoundError:没有名为“statsmodels”的模块