如何解决[ERROR:flutter / lib / ui / ui_dart_state.cc(157)]未处理的异常:FormatException:意外的字符(在字符1)

时间:2020-04-09 11:06:12

标签: json flutter dart

我正在Flutter中执行登录功能。我要使用警报消息中显示的错误消息。现在我收到此错误:

E/flutter ( 2690): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: FormatException: Unexpected character (at character 1)
E/flutter ( 2690): User does not exist
E/flutter ( 2690): ^

这是我的代码:

Future login(String url, {Map body}) async {
    return http.post(url, body: body).then((http.Response response) {
        print(response.body);

        if(json.decode(response.body) == "User does not exist") {
            print("wrong email");
        }
    });
}

有人知道如何解决此错误吗?

2 个答案:

答案 0 :(得分:0)

尝试使用:

Future login(String url, {Map body}) async {
  var response = await http.post(url, body: body)

  if(json.decode(response.body) == "User does not exist") {
    print("wrong email");
   // return something here :)
  } else{
    return json.decode(response.body);
  }
}

答案 1 :(得分:0)

字符串User does not exist是无效的JSON。这就是错误消息告诉您的内容。

要成为有效的JSON,它必须包含引号。

有两种选择:

  1. 更改服务器以将响应编码为JSON。

  2. 请勿尝试将响应解码为JSON。

    只需使用:

    if(response.body == "User does not exist")