Flutter 索引 Json 数据

Posted

技术标签:

【中文标题】Flutter 索引 Json 数据【英文标题】:Flutter Indexing Json Datas 【发布时间】:2021-05-04 05:20:30 【问题描述】:

我不想像 (json["features"][0]json["features"][1]) 这样索引 json。我怎样才能把它变成一个列表或其他东西?

我的代码如下:

class Other 
  String title;
  double mag;

  String title1;
  double mag1;

  String title2;
  double mag2;

  Other(this.mag, this.title, this.mag1, this.title1, this.mag2, this.title2);
  factory Other.fromJson(Map<String, dynamic> json) 
    return Other(
      title: json["features"][0]["properties"]["place"],
      mag: json["features"][0]["properties"]["mag"],
      title1: json["features"][1]["properties"]["place"],
      mag1: json["features"][1]["properties"]["mag"],
      title2: json["features"][2]["properties"]["place"],
      mag2: json["features"][2]["properties"]["mag"],
    );
  

json 数据在这里:https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.geojson

【问题讨论】:

【参考方案1】:

你可以重构你的代码:

factory Other.fromJson(Map<String, dynamic> json) 
  final features = json['features'];
  final firstProperties = reatures[0]['properties'];
  final secondProperties = reatures[0]['properties'];
  final thirdProperties = reatures[0]['properties'];
  return Other(
    title: firstProperties['place'],
    mag: firstProperties['mag'],
    title1: secondProperties['place'],
    mag1: secondProperties['mag'],
    title2: thirdProperties['place'],
    mag2: thirdProperties['mag'],
  );

或者使用像 this one 这样的插件来为你的实体生成 JSON 解析器。

有关如何使用 JSON 的更多信息包含在 Official Flutter Documentation 中。

【讨论】:

以上是关于Flutter 索引 Json 数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter Cards 中插入 JSON 信息?

Flutter JSON数据问题

Flutter:JSON数据,列表下列表

Flutter:显示来自 json 的数据

Flutter:从 json 列表中获取数据

FLUTTER:RangeError(索引):索引超出范围:没有有效索引:0(通过参数)