Flutter Dart-解析嵌套Json数组

Flutter Dart-解析嵌套Json数组,flutter,dart,Flutter,Dart,尝试使用dart的工厂概念转换嵌套JSON数据后出错。 在这里,我有两个类来处理json数据,但仍然会出现以下错误: 发生异常。 _TypeError类型“FormatException”不是类型“Map”的子类型 代码如下: 类体响应{ 最后的地图信息; 身体反应{ 这是我的留言 }; factory BodyResponse.fromJsonMap json{ 返回BodyResponsemessage:json['message']; } } 类错误响应{ 最终机体反应机体; 最终国际地位

尝试使用dart的工厂概念转换嵌套JSON数据后出错。 在这里,我有两个类来处理json数据,但仍然会出现以下错误:

发生异常。 _TypeError类型“FormatException”不是类型“Map”的子类型

代码如下:

类体响应{ 最后的地图信息; 身体反应{ 这是我的留言 }; factory BodyResponse.fromJsonMap json{ 返回BodyResponsemessage:json['message']; } } 类错误响应{ 最终机体反应机体; 最终国际地位; 最终字符串contentType; 最后的成功; 错误响应{ this.body、this.status、this.contentType、this.success }; factory ErrorResponse.fromJsonMap json{ 返回错误响应 body:BodyResponse.fromJsonjson['body'], 状态:json['status'], contentType:json['content_type'], success:json['success'] ; } } ErrorResponse errors=ErrorResponse.fromJson { 正文:{ 消息:有人已使用此用户名foobar,请使用新用户名重试。 }, 现状:500, 内容类型:application\/json, 成功:错 } ; 打印错误;
这里会出什么问题?

在这里修改了大部分代码。希望这是你努力实现的目标

导入“dart:convert”; 类体响应{ 最终字符串消息; BodyResponse{this.message}; BodyResponse.fromJsonMap json: message=json['message']; factory BodyResponse.fromStringString encodedJson{ 返回BodyResponse.fromJsonjson.decodeCodedJSON; } 映射到JSON=>{ 讯息:讯息,, }; 字符串toString=>json.encodethis.toJson; } 类错误响应{ 最终机体反应机体; 最终国际地位; 最终字符串contentType; 最后的成功; ErrorResponse{this.body,this.status,this.contentType,this.success}; ErrorResponse.fromJsonMap json: body=BodyResponse.fromJsonjson['body'], status=json['status'], contentType=json['content\u type'], success=json['success']; factory ErrorResponse.fromStringString encodedJson{ 返回ErrorResponse.fromJsonjson.decodeCodedJSON; } 映射到JSON=>{ body:body.toJson, 状态:状态, contentType:contentType, 成功:成功, }; 字符串toString=>json.encodethis.toJson; } 真空总管{ ErrorResponse errors=ErrorResponse.fromString { 正文:{ 消息:有人已使用此用户名foobar,请使用新用户名重试。 }, 现状:500, 内容类型:application\/json, 成功:错 } ; 打印错误; }
让我知道这是否有帮助。

您在ErrorResponse errors=ErrorResponse.fromJson处作为参数传递的值。。。似乎是一个字符串,而函数希望它是一个映射json。@George,但仍然无法传递json!当我在dart环境中运行它时,您的解决方案工作得很好。但是,当我试图在catch块中再次使用它时,它似乎被打断了:下面是一个屏幕截图:我尝试了ErrorResponse.fromJson和ErrorResponse.fromString方法。此外,JSON以某种方式获得了额外的{在字符串末尾!@rakibtg您正在尝试从本地Dart异常e获取服务器错误响应。我认为您应该使用相同的response.body和fromString方法。感谢George抽出时间。据我的JS知识,我正在尝试使用这个try…catch block:您认为根据Dart,这是可能的吗?: