【发布时间】:2020-06-23 16:22:26
【问题描述】:
我想问一下下面的错误是什么意思以及如何解决它:
import 'dart:convert';
import './topic.dart';
class Subject {
String name;
bool isMajor;
List<Topic> topics;
Subject({this.name, this.isMajor, this.topics});
factory Subject.fromJSON(Map<String, dynamic> json) {
if (json != null) {
return Subject(
name: json['name'],
isMajor: json['isMajor'],
topics: List<Topic>.from(
json['topics'].map((topic) => Topic.fromJSON(topic))));
} else {
return null;
}
}
Map<String, dynamic> toJSON() {
return {
'name': name,
'isMajor': isMajor,
'topics': topics.map((topic) => jsonEncode(topic.toJSON())).toList(),
};
}
}
错误与这一行有关:json['topics'].map((topic) => Topic.fromJSON(topic))));
上面写着:_TypeError (type 'String' is not a subtype of type 'Map<String, dynamic>')。
我认为[{ data: ... }] 和{ data: ... } 在某种程度上存在差异,但我不知道在哪里解决它!
也许你有最后的线索!
示例 JSON:
[
{
"name": "Amet do id ea velit",
"isMajor": true,
"topics": [
{
"name": "Elit exercitation excepteur",
"contents": [
{
"title": "Ad id irure aute exercitation occaecat nostrud",
"body": "Cupidatat nisi ad quis officia aliqua fugiat ullamco",
"isImportant": false
}
]
}
]
}
]
【问题讨论】:
-
你的主题模型是什么?
-
你见过他们吗?
-
你能发布你的示例 json
-
给你:D