json - 插入一个大的字符串 JSON 作为突变 GRAPHQL 的输入
问题描述
我从客户端得到一个大的字符串化 JSON。我想使用这个 JSON 在我的数据库中创建项目。我有一个突变,将这个 Json 作为一个字符串。在突变内部,我解析了 json,然后用它来填写我的数据库。当我尝试在 Graphiql 中运行突变时出现错误。
此字符串是我在使用 JSON.stringify(obj) 时从客户端获取的普通 JSON 字符串
解决方案
GraphQL 使用双引号 ( "
) 分隔字符串文字。如果您需要使用其中包含一个或多个双引号字符的字符串文字,则需要通过\
在每个字符之前插入反斜杠 ( ) 来正确转义这些字符。如果您不这样做,GraphQL 会将字符串中的双引号视为整个字符串的终止符,并且通常字符串中的下一个字符最终会产生语法错误。
所以像这样的字符串值:
{"key": "value"}
需要像这样转义:
{\"key\": \"value\"}
作为 GraphQL 文档中的文字,它最终看起来像这样:
"{\"key\": \"value\"}"
同样的规则也适用于您作为变量发送的字符串,但这是由于 JSON 语法规则,而不是 GraphQL 规则。您可以在规范中阅读有关在字符串中转义字符的更多信息。
推荐阅读
- javascript - .replace() 内容可编辑的负正则表达式
- random - 具有固定种子和可变精度的 boost::multiprecision 随机数
- javascript - 为什么我的 javascript 不能重定向以下代码,我尝试了多种解决方案,我在 StackOverFlow 中找到了
- javascript - Express 路由器在应返回 Not Found (404) 时调用另一条路由
- azure-devops - Azure DevOps - 如何在不重新创建新管道的情况下更新管道存储库源?
- python - 如何在 Tornado 中编写非阻塞、分块的 RequestHandler
- sqlite - SQFLite:当字段值为 json_encode 时如何获取数据?
- mongodb - MongoDB聚合 - 如果提供则匹配输入参数否则不匹配
- excel - 从另一个工作表循环 Vlookup “范围内的每个单元格”
- java - Angular primeNg pEditableColumn 下拉 onChange 事件