微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何读取json元素

如何解决如何读取json元素

我有一个json来读取项目并将其添加到列表中,但是foreach方法不起作用:( 我的 json 是:

{"elements":[{"id":9,"payVal":222,"payDate":"2021-08-10T19:30:00Z","isCharity":true,"imgFileUrls":[],"firstName":"Admin","lastName":"Admin","nationalCode":"2280113732","applicationUserId":"5701c92c-a1ee-4721-91de-08d932684d82"}],"totalElements":6}

我的代码(responseBody 包括 json):

final responseBody = json.decode(response.body)['elements'];
  responseBody.forEach((item) {
    _transactions.add(TransactionModel.fromJson(item));
  });

解决方法

映射是实现它的更好方法。

TransactionModel 类

class TransactionModel {
  final int id;
  final int payVal;
  final String payDate;
  final bool isCharity;
  final List imgFileUrls;
  final String firstName;
  final String lastName;
  final String nationalCode;
  final String applicationUserId;
  
TransactionModel(
  this.id,this.payVal,this.payDate,this.isCharity,this.imgFileUrls,this.firstName,this.lastName,this.nationalCode,this.applicationUserId);

  static TransactionModel fromMap(Map<String,dynamic> map) {
      return TransactionModel(
          map['id'],map['payVal'],map['payDate'],map['isCharity'],map['imgFileUrls'],map['firstName'],map['lastName'],map['nationalCode'],map['applicationUserId']);
 }
}

现在让我们创建一个方法来读取 JSON 并返回事务模型对象列表。

List<TransactionModel> readJson(Map<String,dynamic> data) {
    return List<Map<String,dynamic>>.from(data['elements'])
      .map((e) => TransactionModel.fromMap(e))
      .toList();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。