你也可以试穿一下
https://app.quicktype.io/
。此网站可以轻松地将JSON转换为dart模型类。支持多种不同的语言
import 'dart:convert';
SiteHierarchyModel siteHierarchyModelFromJson(String str) => SiteHierarchyModel.fromJson(json.decode(str));
String siteHierarchyModelToJson(SiteHierarchyModel data) => json.encode(data.toJson());
class SiteHierarchyModel {
SiteHierarchyModel({
this.workspaces,
this.zones,
});
List<Workspace> workspaces;
Map<String, List<Workspace>> zones;
factory SiteHierarchyModel.fromJson(Map<String, dynamic> json) => SiteHierarchyModel(
workspaces: List<Workspace>.from(json["workspaces"].map((x) => Workspace.fromJson(x))),
zones: Map.from(json["zones"]).map((k, v) => MapEntry<String, List<Workspace>>(k, List<Workspace>.from(v.map((x) => Workspace.fromJson(x))))),
);
Map<String, dynamic> toJson() => {
"workspaces": List<dynamic>.from(workspaces.map((x) => x.toJson())),
"zones": Map.from(zones).map((k, v) => MapEntry<String, dynamic>(k, List<dynamic>.from(v.map((x) => x.toJson())))),
};
}
class Workspace {
Workspace({
this.id,
this.createdAt,
this.updatedAt,
this.siteId,
this.orgId,
this.name,
this.workspaceId,
});
String id;
DateTime createdAt;
DateTime updatedAt;
String siteId;
String orgId;
String name;
String workspaceId;
factory Workspace.fromJson(Map<String, dynamic> json) => Workspace(
id: json["id"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
siteId: json["siteId"],
orgId: json["orgId"],
name: json["name"],
workspaceId: json["workspaceId"] == null ? null : json["workspaceId"],
);
Map<String, dynamic> toJson() => {
"id": id,
"createdAt": createdAt.toIso8601String(),
"updatedAt": updatedAt.toIso8601String(),
"siteId": siteId,
"orgId": orgId,
"name": name,
"workspaceId": workspaceId == null ? null : workspaceId,
};
}