flutter 解析复杂json

之前的文章记录了解析简单json的方法、今天遇到复杂的格式、记录作为参考

接口:http://news-at.zhihu.com/api/4/news/latest (知乎开放接口)

数据格式:



json分析: 包含一string字符串两个list,所以要建立两个class分别为top_stories、stories,其中top_stories的images为数组所以要使用 list images这种方式

bean类:

import 'package:json_annotation/json_annotation.dart';

part 'Sydata.g.dart';

@JsonSerializable()

class Sysdata  {

final String date;

final List stories;

@JsonKey(name: "top_storie")

final List topstories;

Sysdata({this.date,this.stories,this.topstories});

  factory Sysdata.fromJson(Map parms) =>_$SysdataFromJson(parms);

  Map toJson() => _$SysdataToJson(this);

}

@JsonSerializable()

class Staets {

List images;

int type;

int id;

@JsonKey(name: "ga_prefix")

String gaprefix;

String title;

Staets({this.images,this.type,this.id,this.gaprefix,this.title});

factory Staets.fromJson(Map parms) => _$StaetsFromJson(parms);

Map toJson() =>_$StaetsToJson(this);

}

@JsonSerializable()

class Topstate{

  String image;

  int type;

  int id;

  @JsonKey(name: "ga_prefix")

  String gaprefix;

  String title;

  Topstate({this.image,this.type,this.id,this.gaprefix,this.title});

  factory Topstate.fromJson(Map parms) =>_$TopstateFromJson(parms);

  Map toJson() =>_$TopstateToJson(this);

}


注意dart并不能直接转译 “xx-xx”字符串所以使用 @JsonKey(name:"") 进行包裹

解析方法:


你可能感兴趣的:(flutter 解析复杂json)