Dart 分析Flatter中嵌套的JSON列表时出错
调用API但显示错误,我无法解析bean类中的数据 我的答复是:Dart 分析Flatter中嵌套的JSON列表时出错,dart,flutter,Dart,Flutter,调用API但显示错误,我无法解析bean类中的数据 我的答复是: { "error":"0", "status":200, "deliveryCharge":"14.00", "image_base_url":"http:\/\/xxxxx.tk\/assets\/event\/image\/", "image_logo_url":"http:\/\/xxxxx.tk\/assets\/event\/logo\/", "eventList":[ { "event_id":"1", "eve
{
"error":"0",
"status":200,
"deliveryCharge":"14.00",
"image_base_url":"http:\/\/xxxxx.tk\/assets\/event\/image\/",
"image_logo_url":"http:\/\/xxxxx.tk\/assets\/event\/logo\/",
"eventList":[
{
"event_id":"1",
"event_name":"Syscraft Premier League",
"event_location":"12 ny valleys",
"event_type_id":"15",
"start_date":"2019-01-10 03:21:00",
"end_date":"2019-01-26 16:10:00",
"event_logo":"f4f0bfc168a3816891e2749232c5243f.jpg"
},
{
"event_id":"3",
"event_name":"Republic Day Event 2019",
"event_location":"AH-654 Villa No. 42 New Township New Township",
"event_type_id":"1",
"start_date":"2019-01-26 00:00:00",
"end_date":"2019-01-26 11:55:00",
"event_logo":"3a4a7fabbbd7ed8febf67bacda71ae48.jpg"
}
]
}
调用Api
Future<List<EventResponse>> fetchEvent( ) async {
String url='http://xxxxxxxxxxxxxxx.tk/api/userapp/event/lists';
var headers = new Map();
headers['Auth-Key'] = 'OCDOC@2018';
headers['End-Client'] = 'OCDOC';
var body = new Map();
headers['schedule'] = 'present';
http.Response res = await http.post(url,headers: headers, body: body);
final Map<String,dynamic> parsed=json.decode(res.body); // post api call
print("Reposnce Event:---"+parsed.toString());}
Future fetchEvent()异步{
字符串url='0http://xxxxxxxxxxxxxxx.tk/api/userapp/event/lists';
var headers=newmap();
标题['Auth-Key']='OCDOC@2018';
标题['End-Client']='OCDOC';
var body=newmap();
标题['schedule']=“present';
Response res=wait http.post(url,headers:headers,body:body);
解析的最终映射=json.decode(res.body);//post api调用
打印(“Reposnce事件:--”+parsed.toString());}
我的豆子课
class EventResponse{
String error;
int status;
String deliveryCharges;
String imageBaseUrl;
String imageLogoUrl;
List<Event> eventList;
EventResponse({
this.error,
this.status,
this.deliveryCharges,
this.imageBaseUrl,
this.imageLogoUrl,
this.eventList
});
factory EventResponse.convertEventResponse(Map<String,dynamic> json){
return EventResponse(
error: json['error'],
status: json['status'],
deliveryCharges: json['deliveryCharge'],
imageBaseUrl: json['image_base_url'],
imageLogoUrl: json['image_logo_url'],
eventList: json['eventList']);
}}
class Event{
String eventId;
String eventName;
String location;
String event_logo;
Event({
this.eventId,
this.eventName,
this.location,
this.event_logo,
});
factory Event.convertEvent(Map<String,dynamic> json){
return Event(
eventId: json['event_id'],
eventName: json['event_name'],
location: json['event_location'],
event_logo: json['event_logo'],
);}}
类事件响应{
字符串错误;
智力状态;
字符串交付费用;
字符串imageBaseUrl;
字符串imageLogoUrl;
列表事件列表;
事件响应({
这个错误,
这个,身份,,
这是送货费,
这个.imageBaseUrl,
这个.imageLogoUrl,
这是一个事件列表
});
factory EventResponse.convertEventResponse(映射json){
返回事件响应(
错误:json['error'],
状态:json['status'],
deliveryCharge:json['deliveryCharge'],
imageBaseUrl:json['image\u base\u url'],
imageLogoUrl:json['image\u logo\u url'],
eventList:json['eventList']);
}}
班级活动{
字符串eventId;
字符串eventName;
字符串位置;
字符串事件标志;
事件({
这个.eventId,
这个.eventName,
这个位置,
这个.event_标志,
});
工厂事件.convertEvent(映射json){
返回事件(
eventId:json['event_id'],
eventName:json['event_name'],
位置:json['event_location'],
event_logo:json['event_logo'],
);}}
显示错误
\u InternalLinkedHashMap不是Map类型的子类型
像这样重写
EventResponse
:
class EventResponse {
String error;
int status;
String deliveryCharges;
String imageBaseUrl;
String imageLogoUrl;
List<Event> eventList;
EventResponse(
{this.error,
this.status,
this.deliveryCharges,
this.imageBaseUrl,
this.imageLogoUrl,
this.eventList});
factory EventResponse.convertEventResponse(Map<String, dynamic> json) {
List<dynamic> events = json['eventList'];
List<Event> eventList = events.map((e) => Event.convertEvent(e)).toList();
return EventResponse(
error: json['error'],
status: json['status'],
deliveryCharges: json['deliveryCharge'],
imageBaseUrl: json['image_base_url'],
imageLogoUrl: json['image_logo_url'],
eventList: eventList,
);
}
}
类事件响应{
字符串错误;
智力状态;
字符串交付费用;
字符串imageBaseUrl;
字符串imageLogoUrl;
列表事件列表;
事件响应(
{这个错误,
这个,身份,,
这是送货费,
这个.imageBaseUrl,
这个.imageLogoUrl,
此文件名为.eventList});
factory EventResponse.convertEventResponse(映射json){
List events=json['eventList'];
List eventList=events.map((e)=>Event.convertEvent(e)).toList();
返回事件响应(
错误:json['error'],
状态:json['status'],
deliveryCharge:json['deliveryCharge'],
imageBaseUrl:json['image\u base\u url'],
imageLogoUrl:json['image\u logo\u url'],
事件列表:事件列表,
);
}
}
我像@Richard Heap一样更改了EventResponse
factory EventResponse.convertEventResponse(Map<String, dynamic> json) {
List<dynamic> events = json['eventList'];
List<Event> eventList = events.map((e) => Event.convertEvent(e)).toList();
return EventResponse(
error: json['error'],
status: json['status'],
deliveryCharges: json['deliveryCharge'],
imageBaseUrl: json['image_base_url'],
imageLogoUrl: json['image_logo_url'],
eventList: eventList,
);
}
}
Future<EventResponse> fetchEvent( ) async { // here i change Future type
String url='http://xxxxxxx-oceanapparel.tk/api/userapp/event/lists';
var headers = new Map<String, String>(); //here i defined Map type
headers['Auth-Key'] = 'OCDOC@2018';
headers['End-Client'] = 'OCDOC';
var body = new Map<String, String>(); //here i defined Map type
headers['schedule'] = 'present';
http.Response res = await http.post(url,headers: headers, body: body);
print("Reposnce Event:---"+res.body);
}