Dart / Flutter的新手在为JSON响应分配 bool(boolean) 值时遇到了问题-bool errornull,我得到了:

断言失败: bool(boolean) 表达式不能为空

我不知道发生了什么,因为响应已正确解码,并且其他字段没有问题(请查看Logcat输出)。

这是我的JSON:

{
"error:":false,
"id":1,
"name":"test"
}

我的 future :
Future<dynamic> fetchData() async {
http.Response response = await http.get(Values.URL, headers: {HttpHeaders.contentTypeHeader: "application/json"});

if (response.statusCode == 200) {
  debugPrint(response.body);

  var body = jsonDecode(response.body);

  bool error = body["error"];
  var id = body["id"];
  var name = body["name"];

  print("bool:" + error.toString());
  print("id:" + id.toString());
  print("name:" + name);

  if (error) {
    print("no error");
  } else {
    print("error");
  }
} else {
  throw Exception("statusCode exception e");
}

和Logcat输出:
I/flutter: {
I/flutter:   "error:":false,
I/flutter:   "id":1,
I/flutter:   "name":"test"
I/flutter: }
I/flutter: bool:null
I/flutter: id:1
I/flutter: name:test
I/flutter: Failed assertion: boolean expression must not be null

您能告诉我我在做什么错吗?
任何帮助都感激不尽!谢谢 :)

最佳答案

我要感谢GünterZöchbauer指出我在JSON结构中的愚蠢错误:

"error:":false

应该:
"error":false

不要忘了与编码专家们休息一下;;)

关于json - Dart/Flutter-无法从JSON响应分配 boolean 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54328315/

10-14 10:41
查看更多