如何解决FLUTTER:虽然import'dart:convert',但未找到fromJson和parsedJson方法;
我刚刚开始颤抖,但找不到解决该问题的方法。我目前正在从提供的flutter演示开始,并尝试逐步将其转换为Cupertino应用。
我也使用了不错的read来实现JSON。但是,即使我包括dart:convert,也找不到JSON方法。错误是
lib/services/service_textproblem.dart:13:45: Error: Method not found: 'TextProblem.fromJson'.
TextProblem textproblem = new TextProblem.fromJson(jsonResponse);
^^^^^^^^
lib/model/model_textproblem.dart:42:16: Error: Getter not found: 'parsedJson'.
var list = parsedJson['taskPrmtrs'] as List;
^^^^^^^^^^
lib/model/model_textproblem.dart:44:12: Error: Getter not found: 'parsedJson'.
list = parsedJson['taskTags'] as List;
^^^^^^^^^^
我的service_textproblem.dart看起来像这样,并且dart:convert未突出显示为未使用(反之,突出显示为已使用)
import 'dart:async' show Future;
import 'package:flutter/services.dart' show rootBundle;
import 'dart:convert';
import 'package:math/model/model_textproblem.dart';
Future<String> _loadTextProblemAsset() async {
return await rootBundle.loadString('assets/textproblems.json');
}
Future loadTextProblems() async {
String jsonString = await _loadTextProblemAsset();
final jsonResponse = json.decode(jsonString);
TextProblem textproblem = new TextProblem.fromJson(jsonResponse);
print(textproblem.problemTasks[0].taskText);
}
任何想法我能做什么?我找不到任何类似的问题(除了未包含dart:convert的人)
解决方法
您应该像准则一样编写自己的TextProblem
模型类
class User {
final String name;
final String email;
User(this.name,this.email);
User.fromJson(Map<String,dynamic> json)
: name = json['name'],email = json['email'];
Map<String,dynamic> toJson() =>
{
'name': name,'email': email,};
}
,
尽管找到了fromJson和parsedJson方法,但未找到 'dart:convert';
fromJson和parsedJson不是dart:convert
类的属性。您需要在Model类中实现这些方法。
这是Model类的示例。
class Model {
int id;
String name;
Model({this.id,this.name});
Model.fromJson(Map<String,dynamic> json) {
id = json['id'];
name = json['name'];
}
Map<String,dynamic> toJson() {
final Map<String,dynamic> data = new Map<String,dynamic>();
data['id'] = this.id;
data['name'] = this.name;
return data;
}
}
在此类中,Model.dromJson函数将Model对象转换为json对象,toJson以json格式转换为模型对象。您需要在TextProblem
类中手动添加这些功能。
有很多网站将json转换为数据类。您可以尝试this。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。