【问题标题】:Flutter Dart Parsing Json Strings into ObjectsFlutter Dart 将 Json 字符串解析为对象
【发布时间】:2022-01-24 15:42:14
【问题描述】:

喂!所以我的问题是,我的仪表板模型没有从解析的 json 字符串中获取数据。当我打印到控制台时,基本上 Dashboard.userActivity 和 Dashboard.appName 为 NULL。我真的不知道为什么。 testDataFunction 应该打印相应的仪表板对象及其所有数据(2 个嵌套类 Performance 和 UserActivity 以及 3 个变量错误,appname,time。 我没有包含 Perf 和 UserAct 的代码。与带有 toJson 和 fromJson 辅助方法的 Dashboard 相同。

我监督了什么?非常感谢!

import 'dart:convert';
import 'package:flutter/foundation.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';


class Dashboard {

  UserActivity? userActivity; ///class
  int? totalError;
  Performance? performance;  ///class
  String? appName;
  String? time;

  Dashboard(
      {this.userActivity,
        this.totalError,
        this.performance,
        this.appName,
        this.time});
  

  Dashboard.fromJson(Map<dynamic, dynamic> json) {
    userActivity = json['userActivity'] != null
        ? new UserActivity.fromJson(json['userActivity'])
        : null;

    totalError = json['totalError'];

    performance = json['performance'] != null
        ? new Performance.fromJson(json['performance'])
        : null;

    appName = json['appName'];


    time = json['time'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.userActivity != null) {
      data['userActivity'] = this.userActivity!.toJson();
    }
    data['totalError'] = this.totalError;
    if (this.performance != null) {
      data['performance'] = this.performance!.toJson();
    }
    data['appName'] = this.appName;
    data['time'] = this.time;
    return data;
  }

  @override
  toString() {
    return "userActivity: " + userActivity.toString() + ", appName: " + appName!;
  }

}

 Future testDataFunktion() async {
    String backendjsondata = '{"dashboard":{"userActivity":{"total":17,"logins":50,"active":1,"inactive":5,"loginsPerHourLst":[0,0,0,0,0,0,0,4,11,13,3,3,0,0,10,6],"hourLst":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"online":6},"totalError":1,"performance":{"loadTimePagesLst":[583,289,154,105,16,13,4,583,0,0],"totalPageViewsPerHourLst":[0,0,0,0,0,0,0,14,82,104,52,85,9,89,114,34],"hourLst":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"totalPageViews":583},"appName":"intranet","time":"January, 24 2022 15:50:48"}}';
 
     Map<String, dynamic> data = jsonDecode(backendjsondata);

   
     Dashboard dashboard = Dashboard.fromJson(data);
     print(dashboard);

【问题讨论】:

    标签: json flutter dart object parsing


    【解决方案1】:

    试试:

     Future testDataFunktion() async {
       String backendjsondata = '{"dashboard":{"userActivity":{"total":17,"logins":50,"active":1,"inactive":5,"loginsPerHourLst":[0,0,0,0,0,0,0,4,11,13,3,3,0,0,10,6],"hourLst":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"online":6},"totalError":1,"performance":{"loadTimePagesLst":[583,289,154,105,16,13,4,583,0,0],"totalPageViewsPerHourLst":[0,0,0,0,0,0,0,14,82,104,52,85,9,89,114,34],"hourLst":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"totalPageViews":583},"appName":"intranet","time":"January, 24 2022 15:50:48"}}';
    
     
       Dashboard dashboard = Dashboard.fromJson(Map.from(jsonDecode(backendjsondata)));
       print(dashboard);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 2022-01-09
      • 2013-03-12
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      相关资源
      最近更新 更多