我刚刚开始学习飞镖,我想尝试从 json 字符串创建一个简单的对象列表。我正在使用 AngularJS phonecat 教程尝试将其转换为 Dart ......因此,在我的 dart 文件中,我有这个......
import "dart:json" as json;
import "package:json_object/json_object.dart";
String jsonPhones = """
[{"name": "Nexus S",
"snippet": "Fast just got faster with Nexus S."},
{"name": "Motorola XOOM™ with Wi-Fi",
"snippet": "The Next, Next Generation tablet."},
{"name": "MOTOROLA XOOM™",
"snippet": "The Next, Next Generation tablet."}]
""";
class Phone {
String name;
String snippet;
}
class PhoneImpl extends JsonObject implements Phone {
PhoneImpl();
factory PhoneImpl.fromJsonString(string) {
return new JsonObject.fromJsonString(string, new PhoneImpl());
}
}
List<Phone> Phones;
void main() {
PhoneImpl pi = new PhoneImpl.fromJsonString(jsonPhones);
for(var i = 0; i < pi.length; i++) {
print(pi[i].name);
}
}
所以,当我运行它时,它会打印出每部手机的名称。但是,如果我尝试 Phones.add(pi[i]),我会在成员名称 add 上收到类型为“noSuchMethod()”的错误。我假设此时的 pi[i] 是一个 JsonObject 并且不会自动转换为 Phone 类型。最终我想做的是使用......
<li template iterate="phone in Phones">
在 html 中遍历手机。我尝试使用 PhoneImpl 执行此操作,但随后出现另一个错误,提示 NoSuchMethodError memberName "containsKey"。所以我假设我需要想办法让我的列表从 PhoneImpl 到 List ,到目前为止我似乎无处可去。此外,我宁愿不必用 JsonObject 扩展我的所有模型。事实上,我也试过在没有 json_object 包的情况下完成所有这些工作,但似乎仍然无法让它工作。