我是 Flutter 的新手,必须为结构奇怪的 API 制作一个模型类,我似乎无法在文档或在线任何地方找到任何解决方案。
JSON 文件的结构如下
{
"series_values": {
"card_1": {
"card_series": {
"Playername": "SAMPLE NAME",
"cardnumber": "999",
}
}
"card_2": {
"card_series": {
"Playername": "SAMPLE NAME",
"cardnumber": "999",
}
}
}
}
主要问题是我不知道series_values中元素的名称将是什么标题,也不知道列表中有多少个(card_1和card_2只是示例名称),但我知道它们将始终是一个包含 card_series 的列表,其中包含玩家名和卡号。我如何设计一个类来从每个 JSON 中获取数据?
我制作了一个模型文件来读取 JSON 文件,但我不知道如何将 card_series 列表放入 series_values 列表中的每个项目中。
class CardSeries {
final String playername;
final String cardnumber;
CardSeries({required this.cardnumber, required this.playername});
factory CardSeries.fromJson(Map<dynamic, dynamic> json) {
return CardSeries(
playername: json['Playername'],
cardnumber: json['cardnumber'],
);
}
}
class CardSV {
final List<CardSeries> cs;
CardSV({required this.cs});
factory CardSV.fromJson(Map<dynamic, dynamic> json) {
return CardSV(
cs: List<CardSeries>.from(json['card_series'].map((cs) => CardSeries.fromJson(cs)),
)
);
}
}
class SeriesValues {
final List<CardSV> cardsSV;
SeriesValues({required this.cardsSV});
???
}
}
class CardInfo {
final List<SeriesValues> seriesValues;
CardInfo({required this.seriesValues});
factory CardInfo.fromJson(Map<dynamic, dynamic> json) {
return CardInfo(
seriesValues: List<SeriesValues>.from(json['series_Values'].map((seriesValues) => SeriesValues.fromJson(seriesValues)),)
);
}
}
要在 Flutter 中处理具有未知字段名称的 JSON 数据,您可以使用 Map 和 List 数据结构的组合以及迭代。以下是如何设计类来解析提供的 JSON 结构:
final jsonMap = json.decode(jsonString);
final seriesValues = jsonMap['series_values'];
seriesValues.forEach((key, value) {
final cardName = key;
final cardSeries = value['card_series'];
final playerName = cardSeries['Playername'];
final cardNumber = cardSeries['cardnumber'];
print('Card Name: $cardName');
print('Player Name: $playerName');
print('Card Number: $cardNumber');
print('Card Number: $cardNumber');
});