在 dart 中解码 GraphQL 查询结果
Decode GraphQL query result in dart
以前可能有人问过这个问题,但即使按照 Whosebug 此处的其中一篇帖子中提到的步骤进行操作,我也无法使我的查询正常工作。
这是我在点击按钮时调用的 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');
}
}
在上面的查询中,即使有数据returned,print(data['id'])
语句总是return null,下面是运行结果-
flutter: {findUser: {id: USER-14161234567}} //printing data returns valid data
flutter: null //printing data['id'] returns null.
数据:{findUser: {id: USER-14161234567}}
id
不在地图的顶层,您应该先获取 ['findUser'] 键,然后再获取 ['id'],因为这是嵌套的。
print(data);
print(data['findUser']['id']);
以前可能有人问过这个问题,但即使按照 Whosebug 此处的其中一篇帖子中提到的步骤进行操作,我也无法使我的查询正常工作。 这是我在点击按钮时调用的 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');
}
}
在上面的查询中,即使有数据returned,print(data['id'])
语句总是return null,下面是运行结果-
flutter: {findUser: {id: USER-14161234567}} //printing data returns valid data
flutter: null //printing data['id'] returns null.
数据:{findUser: {id: USER-14161234567}}
id
不在地图的顶层,您应该先获取 ['findUser'] 键,然后再获取 ['id'],因为这是嵌套的。
print(data);
print(data['findUser']['id']);