小编Ian*_*rko的帖子

如何通过 graphQL 和 AWS AppSync 发送 JSON 数组以将数据添加到 Dynamo Table?

我想要做的是通过 AppSync 从 React Native 应用程序发送数据,以便我可以更新 dynamo 表上的用户数据。我可以执行我所有的 CRUD 操作,而不是数据列表。当我尝试时,我收到一个错误,指出我发送的不是有效的 JSON。但是,当我将输入通过 JSON linter 时,我的输入将作为有效的 JSON 传递。

为了尝试解决这个问题,我已将输入流程更改为最简单的流程。最初我是从本地缓存的解析 JSON 字符串中提取我的 JSON。我认为 JSON.parse(obj) 函数可能存在问题。那是站不住脚的。因此,我将所有输入从 JS 对象移到了一个 JSON 中,该 JSON 未预先存储在变量中,而是直接传递给我正在使用的 API(https://aws-amplify.github.io/docs /js/api)。

在这不起作用之后,我想也许我的 GraphQL Schema 对于我发送的对象类型是错误的,但没有发现任何问题。

我在 AppSync 中使用 GraphQL 的架构定义如下:

input CreateUserInput {
  email: String!
  data: AWSJSON
}
Run Code Online (Sandbox Code Playgroud)

我发送的请求如下:

const dbReturn = await API.graphql(graphqlOperation(
  mutations.createUser, {
    input: {
      "email": "fake.email@atdot.com",
      "data": [{
        "num": 34,
      }]
    }
  }
));
Run Code Online (Sandbox Code Playgroud)

错误消息说:

“变量‘数据’的值无效。无法将 [{num=34}] 解析为有效的 JSON。”

令我困惑的是,这"[{num=34}]"不是我给它的输入。我正在发送它"[{"num": 34}]"是有效的 …

javascript amazon-dynamodb aws-appsync

4
推荐指数
2
解决办法
3675
查看次数

标签 统计

amazon-dynamodb ×1

aws-appsync ×1

javascript ×1