【问题标题】:Inserting a large stringed JSON as an input to a mutation GRAPHQL插入一个大的字符串 JSON 作为突变 GRAPHQL 的输入
【发布时间】:2019-05-20 00:48:55
【问题描述】:

我从客户端获得了一个大的字符串化 JSON。 我想使用这个 JSON 在我的数据库中创建项目。我有一个突变,将这个 Json 作为一个字符串。在突变内部,我解析了 json,然后用它来填写我的数据库。当我尝试在 Graphiql 中运行突变时出现错误。

我收到很多错误:

这个字符串是我在使用 JSON.stringify(obj) 时从客户端获取的普通 JSON 字符串

【问题讨论】:

    标签: json graphql apollo-server mutation graphiql


    【解决方案1】:

    GraphQL 使用双引号 (") 分隔字符串文字。如果您需要使用其中包含一个或多个双引号字符的字符串文字,则需要通过在每个字符之前插入反斜杠 (\) 来正确转义这些字符。如果不这样做,GraphQL 会将字符串中的双引号视为整个字符串的终止符,通常字符串中的下一个字符会导致语法错误。

    所以一个字符串值是这样的:

    {"key": "value"}
    

    需要这样转义:

    {\"key\": \"value\"}
    

    作为 GraphQL 文档中的文字,它最终看起来像这样:

    "{\"key\": \"value\"}"
    

    同样的规则也适用于您作为变量发送的字符串,但这是由于 JSON 语法规则,而不是 GraphQL 规则。您可以在 spec 中阅读有关在字符串中转义字符的更多信息。

    【讨论】:

      猜你喜欢
      • 2020-05-18
      • 2020-05-29
      • 2019-02-07
      • 2013-01-08
      • 1970-01-01
      • 2021-10-14
      • 2019-03-09
      • 2019-02-08
      相关资源
      最近更新 更多