[英]Flutter Dart Parsing Json Strings into Objects
Sup,所以我的問題是。 我的儀表板 Model 沒有從解析的 json 字符串獲取分配的數據。基本上 Dashboard.userActivity 和 Dashboard.appName 是 NULL 時打印到控制台。 我真的不明白為什么,testDataFunction 應該打印相應的儀表板 Object 及其所有數據(2 個嵌套類 Performance 和 UserActivity 以及 3 個變量錯誤,appname.time。我沒有包含 Perf 和 UserAct 的代碼。因為它是相同的作為帶有 toJson 和 fromJson 輔助方法的儀表板。
我監督了什么? 非常感謝提前!
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);
嘗試:
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.