flutter - 如何在颤振/飞镖的多级下拉菜单中使用此 Json
问题描述
{
"cars": {
"Nissan": [
{"model": "Sentra", "doors":4},
{"model": "Maxima", "doors":4},
{"model": "Skyline", "doors":2}
],
"Ford": [
{"model": "Taurus", "doors":4},
{"model": "Escort", "doors":4}
]
}
}
我想将 json 解析为类对象并在多级下拉列表中使用它。我正在努力映射下拉菜单按钮
解决方案
这是您的数据的模型类,在 fromJson 函数的帮助下,您可以将 json 数据转换为类对象,并可以根据模型类的结构访问它。
模型类生成链接
class CarsData {
Cars cars;
CarsData({this.cars});
CarsData.fromJson(Map<String, dynamic> json) {
cars = json['cars'] != null ? new Cars.fromJson(json['cars']) : null;
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.cars != null) {
data['cars'] = this.cars.toJson();
}
return data;
}
}
class Cars {
List<Nissan> nissan;
List<Ford> ford;
Cars({this.nissan, this.ford});
Cars.fromJson(Map<String, dynamic> json) {
if (json['Nissan'] != null) {
nissan = new List<Nissan>();
json['Nissan'].forEach((v) {
nissan.add(new Nissan.fromJson(v));
});
}
if (json['Ford'] != null) {
ford = new List<Ford>();
json['Ford'].forEach((v) {
ford.add(new Ford.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.nissan != null) {
data['Nissan'] = this.nissan.map((v) => v.toJson()).toList();
}
if (this.ford != null) {
data['Ford'] = this.ford.map((v) => v.toJson()).toList();
}
return data;
}
}
class Nissan {
String model;
int doors;
Nissan({this.model, this.doors});
Nissan.fromJson(Map<String, dynamic> json) {
model = json['model'];
doors = json['doors'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['model'] = this.model;
data['doors'] = this.doors;
return data;
}
}
推荐阅读
- c# - C# 驱动程序中的 MongoDB 评估查询表达式
- java - Bengli 文本上的 iText7 排版 IndexOutOfBoundsException
- python - Django DeleteView 找不到数据库对象
- regex - Ansible regex_replace 不起作用
- html - 自动播放在 html 5 中嵌入视频
- go - nvim-go 的安装失败并显示“未定义的变量:g:go#debug”
- apache-spark - 根据列值拆分数据集
- html - 如何使用引导程序在缩略图内保持所有图像的高度和宽度相同
- c# - 更改 .csproj 中构建设置的程序集名称
- node.js - Mongoose 连接让我在 openshift 中的随机触发器上出错