Flutter 如何用dart解码bellow类型的json

Flutter 如何用dart解码bellow类型的json,flutter,dart,Flutter,Dart,我想用Dart解码这个Json,但运行后会显示类似这样的错误 (Unhandled Exception: FormatException: Unexpected character (at character 2) {username: ["The username has already been taken." ... ^ { "username": [ "The username has already been taken." ],

我想用Dart解码这个Json,但运行后会显示类似这样的错误

(Unhandled 
Exception: FormatException: Unexpected character (at character 2)
    {username: ["The username has already been taken." ...
     ^
{
    "username": [
        "The username has already been taken."
    ],
    "email": [
        "The email has already been taken."
    ],
    "phone": [
        "The phone has already been taken."
    ],
    "error": [
        "true"
    ]
}
下面我附上我的代码来解码JSON

var p = await createAccount(Url.Main_Url+'register');
    var object=json.decode(p);



Future<String> createAccount(String url) async {
    final response = await http.post(url, body: {
      'username': Username,
      'password': Password,
      'name': Name,
      'email': Email,
      'phone': Phone,
      'password_confirmation': Com_Password,
    });
    return json.decode(response.body).toString();
  }
var p=await createAccount(Url.Main_Url+'register');
var object=json.decode(p);
未来CreateCount(字符串url)异步{
最终响应=等待http.post(url,正文:{
“用户名”:用户名,
“密码”:密码,
“名称”:名称,
“电子邮件”:电子邮件,
“电话”:电话,
“密码确认”:Com密码,
});
返回json.decode(response.body).toString();
}
我将感谢任何帮助。非常感谢。

未来的CreateCount(字符串url)异步{
Future createAccount(String url) async {
final response = await http.post(url, body: {
  'username': Username,
  'password': Password,
  'name': Name,
  'email': Email,
  'phone': Phone,
  'password_confirmation': Com_Password,
});
return json.decode(response.body);}


   var p = await createAccount(Url.Main_Url+'register');

    Map<String, dynamic> jsonResponse = p;

    if(jsonResponse.containsKey('error')) {
      if (jsonResponse.containsKey('username')) {
        Show_Snackbar(p['username'][0]);
      }
      else if (jsonResponse.containsKey('email')) {
        Show_Snackbar(p['email'][0]);
      }
      else if (jsonResponse.containsKey('phone')) {
        Show_Snackbar(p['phone'][0]);
      }
    }
最终响应=等待http.post(url,正文:{ “用户名”:用户名, “密码”:密码, “名称”:名称, “电子邮件”:电子邮件, “电话”:电话, “密码确认”:Com密码, }); 返回json.decode(response.body);} var p=await createAccount(Url.Main_Url+'register'); Map jsonResponse=p; if(jsonResponse.containsKey('error')){ if(jsonResponse.containsKey('username')){ 显示_Snackbar(p['username'][0]); } else if(jsonResponse.containsKey('email')){ 显示Snackbar(p['email'][0]); } else if(jsonResponse.containsKey('phone')){ Show_Snackbar(p['phone'][0]); } }
当您编写“this json”时,您是指只有您和心灵感应者知道的json吗?这个错误实际上是在说,响应的json不是正确的json。用户名应该用引号括起来,但在错误消息中不是。您可以发布服务器输出的真实json数据吗?为什么不以文本形式给出此json代码的示例?我的意思是
response.body
value。