如何修改AWS AppSync响应映射模板返回合法JSON而非字符串?
解决AWS AppSync返回字符串化JSON的问题
问题原因
当GraphQL schema中定义返回类型为AWSJSON时,AppSync会自动对该字段的返回值进行JSON序列化。如果在响应映射模板中再使用$util.toJson(),会触发双重序列化,最终返回的是JSON字符串而非原生JSON对象。
解决方案
直接返回原始JSON对象,无需调用$util.toJson(),修改响应映射模板为:
{"version": "0.1.0"}
验证结果
修改后,查询响应会变为合法的JSON结构:
{ "data": { "getHealthCheck": { "version": "0.1.0" } } }
补充说明
AWSJSON类型的作用就是标记字段需要被序列化为JSON,因此模板只需返回普通JSON对象即可。- 若需返回嵌套对象、数组等复杂结构,同样直接返回原始结构,不需要额外序列化处理。
内容的提问来源于stack exchange,提问作者bolino
相关产品推荐
相关产品推荐

