【问题标题】:Decode GraphQL query result in dart在 dart 中解码 GraphQL 查询结果
【发布时间】:2021-12-22 02:59:15
【问题描述】:

这可能以前被问过,但即使按照 Stackoverflow 中的一篇文章中提到的步骤,我也无法使我的查询工作。 这是我在单击按钮时调用的 graphql 查询

void findUserOnBol() async {
  try {
      String graphQLDocument = '''query findUser(\$id: ID!) {
      findUser(userId: \$id) {
      id
    }
  }''';
      var operation = Amplify.API.query(
        request: GraphQLRequest<String>(
            document: graphQLDocument,
            apiName: 'API_KEY',
            variables: {'id': 'USER-14161234567'}));

    var response = await operation.response;
    Map<String, dynamic> data = jsonDecode(response.data) as Map<String,dynamic>;
    print(data);
    print(data['id]);
  } on ApiException catch (e) {
    print('Query failed: $e');
  }
}

在上面的查询中print(data['id'])语句即使有数据返回也总是返回null,下面是操作的结果-

flutter: {findUser: {id: USER-14161234567}} //printing data returns valid data
flutter: null //printing data['id'] returns null.

【问题讨论】:

    标签: flutter dart graphql


    【解决方案1】:

    数据:{findUser: {id: USER-14161234567}}

    id 不在地图的顶层,您应该先获取 ['findUser'] 键,然后是嵌套的 ['id']。

        print(data);
        print(data['findUser']['id']);
    

    【讨论】:

    • 感谢 croxx5f。
    猜你喜欢
    • 2020-06-01
    • 2019-12-29
    • 2018-10-08
    • 2019-01-26
    • 2022-11-18
    • 2021-08-05
    • 2020-10-23
    • 2016-01-11
    • 2020-10-11
    相关资源
    最近更新 更多