【发布时间】:2020-04-02 07:09:05
【问题描述】:
Flutter 的新手,从 json 响应中,我想简单地获取值。
JSON 响应示例:
{
"success": true,
"kits": {
"Kit One": {
"area": "area one"
},
"Kit Two": {
"area": "area two"
},
"Kit Three": {
"area": "area three"
},
"Kit Four": {
"area": "area four"
},
"Kit Five": {
"area": "area five"
},
"Kit Six": {
"area": "area six"
},
"Kit Seven": {
"area": "area seven"
},
"Kit Eight": {
"area": "area eight"
},
"Kit Nine": {
"area": "area nine"
},
"Kit Ten": {
"area": "area ten"
}
}
}
QuickType - JSON 到 Dart
import 'dart:convert';
Kits kitsFromJson(String str) => Kits.fromJson(json.decode(str));
String kitsToJson(Kits data) => json.encode(data.toJson());
class Kits {
bool success;
Map<String, Kit> kits;
Kits({
this.success,
this.kits,
});
factory Kits.fromJson(Map<String, dynamic> json) => Kits(
success: json["success"] == null ? null : json["success"],
kits: json["kits"] == null ? null : Map.from(json["kits"]).map((k, v) => MapEntry<String, Kit>(k, Kit.fromJson(v))),
);
Map<String, dynamic> toJson() => {
"success": success == null ? null : success,
"kits": kits == null ? null : Map.from(kits).map((k, v) => MapEntry<String, dynamic>(k, v.toJson())),
};enter code here
}
class Kit {
String area;
Kit({
this.area,
});
factory Kit.fromJson(Map<String, dynamic> json) => Kit(
area: json["area"] == null ? null : json["area"],
);
Map<String, dynamic> toJson() => {
"area": area == null ? null : area,
};
}
问题:
鉴于我上面的内容,我已经想出了如何获取诸如“套件一”、“套件二”等值。但不幸的是,我对如何获得诸如“区域一”之类的值有点困惑, '区域二', 等等。
其他信息: “套件一”、“套件二”、“套件三”等将显示为列表,选择一行会将其值(“区域一”或“区域二”等)发送到下一页。
非常感谢您并感谢您的所有帮助。愿原力与你同在! :)
【问题讨论】:
-
您是否在此处发布了完整代码?或者还有其他一些代码,也许你忘记发布了。 :-)
-
javiercbk.github.io/json_to_dart ... 在此处发布您的 JSON,它将为此生成一些飞镖代码。我希望你会从中得到清晰的想法。 :-)
-
不确定您的问题是什么?在我看来,您的 JSON 解析有效,所以在解析 json 后如何导航数据结构的问题更多吗?例如。我可以通过运行
kitsObject.kits.values.forEach((kit) => print(kit.area));获取区域列表,其中kitsObject是kitsFromJson的输出 -
谢谢julemand101,这就是我要找的东西.. :) 我怎么能在这里指出你的解决方案解决了我的问题?再次感谢!! :)
-
也感谢 Ratnadeep Chakraborty,尽管这与 Akash Kashyap 的建议相同,但会保留此信息以供将来参考。
标签: json dictionary parsing flutter dart