ダーツを学び始めたばかりで、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 パッケージを使用せずにこれらすべてを実行しようとしましたが、まだ機能していないようです。