【问题标题】:Getting null when print attribute of class after assign value from json从json赋值后类的打印属性为null
【发布时间】:2021-04-23 12:17:23
【问题描述】:

当我尝试为它分配值并打印任何值时,我有类 CityModel 得到空值现在是真实值。

这里是 CityModel 类文件

import 'package:flutter/material.dart';

class CityModel {
      String cityId;
      String nameAr;
      CityModel({@required cityId, @required nameAr});
}

这里提供者函数,我尝试将值分配给类城市属性

Response response = await httpService.getRequest(url);
  var parsedCities = response.data['data']['cities'] as List;

  if (response.statusCode == 200 && response.data['status_code'] == 201) {
    parsedCities.forEach((cityObject) {
      final String name = cityObject['name_ar'];

      final CityModel city =
          CityModel(cityId: cityObject['city_id'], nameAr: cityObject['name_ar']);
      cities.add(city);
      print(city.nameAr);
    });

parsedCitites 包含城市对象列表 如果我打印 cityObject['name_ar] 我得到了正确的值 但我的问题是,在赋值给我得到 null 之后尝试打印 city.name_ar 我不知道为什么。

【问题讨论】:

  • 分享你的错误日志
  • @MoaidALRAzhy 没有错误只是打印 null 不是正确的值

标签: flutter dart provider dio


【解决方案1】:

试试这个?当您声明 'final String name = ....' 时,会发生一些类型转换:

Response response = await httpService.getRequest(url);
  var parsedCities = response.data['data']['cities'] as List;

  if (response.statusCode == 200 && response.data['status_code'] == 201) {
    parsedCities.forEach((cityObject) {
      final String name = cityObject['name_ar'];
      final String city = cityObject['city_id'];
      print(name);
      print(city);
      final CityModel city =
          CityModel(cityId: city, nameAr: name);
      cities.add(city);
      print(city.nameAr);
      print(city.cityId);
    });

【讨论】:

  • 我尝试了您的代码,但没有打印任何内容
  • 感谢我发现了错误。我忘记在模型类中添加这个关键字
猜你喜欢
  • 2016-07-21
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-08
  • 1970-01-01
相关资源
最近更新 更多