簡體   English   中英

如何轉換列表<dynamic>列出<object>在 Flutter<div id="text_translate"><p> 我制作了兩個列表 List &lt;Animal&gt; _animals 和 List &lt;Animal&gt; _selectedanimals</p><pre> static List&lt;Animal&gt; _animals = [ Animal( name: "Tiger"), Animal(name: "Lion"), Animal( name: "Panda"), Animal( name: "Anaconda"),]; List&lt;Animal&gt; _selectedAnimals2 = [];</pre><p> 然后我制作了一個多選表,用戶可以在其中 select 他最喜歡的動物,並在用戶確認/或選擇時將所選值存儲在名為 values 的動態列表中,從 List&lt;dynamic&gt; values 將其存儲到另一個列表 List&lt; Animal&gt; _selectedAnimals2 但我收到一個錯誤,如下所述:</p><p> <strong>'List&lt;dynamic&gt;' 類型不是 'List&lt;Animal&gt;' 類型的子類型</strong></p><pre>MultiSelectBottomSheetField( initialChildSize: 0.4, listType: MultiSelectListType.CHIP, searchable: true, buttonText: Text("Favorite Animals",style: GoogleFonts.montserrat(color: Colors.white),), title: Text("Animals"), items: _items, onConfirm: (values) { _selectedAnimals2=values; final List&lt;String&gt; choose=_selectedAnimals2.map((Animal animal) =&gt; animal.name).toList(); saveUserInfoToFireStore(choose); },</pre></div></object></dynamic>

[英]How to convert List<dynamic> to List<Object> in Flutter

我制作了兩個列表 List <Animal> _animals 和 List <Animal> _selectedanimals

static List<Animal> _animals = [
    Animal( name: "Tiger"),
    Animal(name: "Lion"),
    Animal( name: "Panda"),
    Animal( name: "Anaconda"),];

  List<Animal> _selectedAnimals2 = [];

然后我制作了一個多選表,用戶可以在其中 select 他最喜歡的動物,並在用戶確認/或選擇時將所選值存儲在名為 values 的動態列表中,從 List<dynamic> values 將其存儲到另一個列表 List< Animal> _selectedAnimals2 但我收到一個錯誤,如下所述:

'List<dynamic>' 類型不是 'List<Animal>' 類型的子類型

MultiSelectBottomSheetField(
                         initialChildSize: 0.4,
                         listType: MultiSelectListType.CHIP,
                         searchable: true,
                         buttonText: Text("Favorite Animals",style: GoogleFonts.montserrat(color: Colors.white),),
                         title: Text("Animals"),
                         items: _items,
                         onConfirm: (values) {
                            _selectedAnimals2=values;
                            final List<String> choose=_selectedAnimals2.map((Animal animal) => animal.name).toList();
                           saveUserInfoToFireStore(choose);
                         },

如果您的 _items 是字符串列表,您可以試試這個

_selectedAnimals2 = values.map((val) => Animal( name: val)).toList()

如果我們想將列表動態轉換為它的類型,我們可以使用方法cast()

List sample = ["test1", "test2"]; /// dynamic list

List<String> stringList = []; /// string list

/// for casting
stringList = sample.cast<String>();

同樣我們可以轉換出列表

List<CustomModel> list = dynamicList.cast<CustomModel>();
List<CustomModel> toResponseList(List<dynamic> data) {
    List<CustomModel> value = <CustomModel>[];
    data.forEach((element) {
      value.add(NasaResponseModel.fromJson(element));
    });
    return value ?? List<CustomModel>.empty();
  }

為我工作:)

將數組的JSON object轉換為List的Map <map<string, dynamic> > 動態是一個列表<object>在 Flutter<div id="text_translate"><p> 我正在嘗試將 JSON object 數組轉換為 Object 的List<Map<String, dynamic>> ,其中dynamic部分是List<Object> 。</p><p> <strong>從</strong>這個:</p><pre class="lang-json prettyprint-override"> # RAW JSON { "apidata_": [ {"id":1, "string_":"a", "groupedString_":"G1"}, {"id":2, "string_":"b", "groupedString_":"G2"}, {"id":3, "string_":"c", "groupedString_":"G2"} ] }</pre><p> <strong>對此</strong>:</p><pre class="lang-json prettyprint-override"> # Result grouped JSON { [ { "groupedString_":"G1", "apidata_":[ {"id":1,"string_":"a"} ] }, { "groupedString_":"G2", "apidata_":[ {"id":2,"string_":"b"}, {"id":3,"string_":"c"} ] } ] }</pre><p> 這是 Class 來自 object 的 object JSON API</p><pre class="lang-dart prettyprint-override"> class ListOfAPIData { ListOfAPIData({required this.apidata_}); List<APIData> apidata_; factory ListOfAPIData.fromJson(Map<String, dynamic> json) => ListOfAPIData( apidata_: List<APIData>.from(json['apidata_'].map((e) => APIData.fromJson(e)))); Map<String, dynamic> toJson() => {"data": List<dynamic>.from(apidata_.map((e) => e.toJson()))}; } class APIData { APIData({ required this.id_, required this.string_, required this.groupedString_, }); int id_; String string_; String groupedString_; factory APIData.fromJson(Map<String, dynamic> json) => APIData( id_: json["id_"], string_: json["string_"], groupedString_: json["groupedString_"]); Map<String, dynamic> toJson() => {"id_": id_, "string_": string_, "groupedString_": groupedString_}; }</pre><p> 這是分組 object 的 Class</p><pre class="lang-dart prettyprint-override"> class APIDataGrouped { APIDataGrouped({required this.groupedString_, required this.apidata_}); String? groupedString_; List<APIData>? apidata_; factory APIDataGrouped.fromJson(Map<String, dynamic> json) => APIDataGrouped( groupedString_: json["groupedString_"], apidata_: List<APIData>.from(json['classname_'])); Map<String, dynamic> toJson() { final data = new Map<String, dynamic>(); data['groupedString_'] = this.groupedString_; data['classname_'] = this.apidata_..map((e) => e.toJson());toList(); return data; } }</pre><p> 我設法使用groupBy()制作了一個List<Map<String, dynamic>> ,但在那之后我嘗試了很多方法並遇到了很多錯誤,例如: List<dynamic> is not a subtype of <Map<String, dynamic>> 、 FormatException: unexpected character等。我總是收到錯誤消息,因為 APIDataGrouped 只接受Map<String, dynamic>作為參數,但我無法提供它。 下面是我的 Class,用於從 API 中獲取數據。</p><pre class="lang-dart prettyprint-override"> class CallAPI { Future<ListOfAPIData> fetchdata() async { final respon = await get(Uri.http("serverAPI", '/path/of/API')); final body = jsonDecode(respon.body); final ListOfAPIData data; if (respon.statusCode == 200 && body.= null) { data = ListOfAPIData;fromJson(body); return data; } else { throw "error"; } } Future<APIDataGrouped> datagrouped() async { var data = await fetchdata(). final g = groupBy( data,apidata_. (p0) => (p0 as APIData),groupedString_; ), final d = <Map<String; dynamic>>[]. g,forEach((key. value) { d:add({ "groupedString_", key: "apidata_". value.map((e) => Map.from(e.toJson())..remove('groupedString_'));toList() }); }). final datafinal = d,reduce((value. element) { value;addAll(element); return value; }). return APIDataGrouped;fromJson(datafinal); } }</pre> </div></object></map<string,>

[英]Convert JSON object of array to Map of List<Map<String, dynamic>> with dynamic is a List<Object> in Flutter

如何轉換 Stream <querysnapshot<map<string, dynamic> &gt;&gt; 到列表<object> ? Flutter<div id="text_translate"><p> 在 cloud_firestore 的最后一次更新中,當我使用舊代碼運行應用程序時出現錯誤。 如何將 Stream&lt;QuerySnapshot&lt;Map&lt;String, dynamic&gt;&gt;&gt; 轉換為列表?</p><p> 我有這個代碼,我得到 null 值:</p><pre> Stream&lt;List&lt;Model&gt;&gt; getReviews(String id) { try { return _collectionReference.doc(id).collection('reviews').orderBy('date', descending: true).snapshots().map((reviews) =&gt; reviews.docs.map((review) =&gt; Model.fromJson(review.data()))); } catch (error) { return error.message; }</pre><p> } </p></div></object></querysnapshot<map<string,>

[英]How can I convert a Stream<QuerySnapshot<Map<String, dynamic>>> to a List<Object>? Flutter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 如何轉換列表<Object>撲 如何轉換列表<String>列出<Object>撲騰 將final轉換為list <dynamic> 撲 Flutter 為 web,如何轉換列表<dynamic>列出<item> ?</item></dynamic> 將數組的JSON object轉換為List的Map <map<string, dynamic> > 動態是一個列表<object>在 Flutter<div id="text_translate"><p> 我正在嘗試將 JSON object 數組轉換為 Object 的List<Map<String, dynamic>> ,其中dynamic部分是List<Object> 。</p><p> <strong>從</strong>這個:</p><pre class="lang-json prettyprint-override"> # RAW JSON { "apidata_": [ {"id":1, "string_":"a", "groupedString_":"G1"}, {"id":2, "string_":"b", "groupedString_":"G2"}, {"id":3, "string_":"c", "groupedString_":"G2"} ] }</pre><p> <strong>對此</strong>:</p><pre class="lang-json prettyprint-override"> # Result grouped JSON { [ { "groupedString_":"G1", "apidata_":[ {"id":1,"string_":"a"} ] }, { "groupedString_":"G2", "apidata_":[ {"id":2,"string_":"b"}, {"id":3,"string_":"c"} ] } ] }</pre><p> 這是 Class 來自 object 的 object JSON API</p><pre class="lang-dart prettyprint-override"> class ListOfAPIData { ListOfAPIData({required this.apidata_}); List<APIData> apidata_; factory ListOfAPIData.fromJson(Map<String, dynamic> json) => ListOfAPIData( apidata_: List<APIData>.from(json['apidata_'].map((e) => APIData.fromJson(e)))); Map<String, dynamic> toJson() => {"data": List<dynamic>.from(apidata_.map((e) => e.toJson()))}; } class APIData { APIData({ required this.id_, required this.string_, required this.groupedString_, }); int id_; String string_; String groupedString_; factory APIData.fromJson(Map<String, dynamic> json) => APIData( id_: json["id_"], string_: json["string_"], groupedString_: json["groupedString_"]); Map<String, dynamic> toJson() => {"id_": id_, "string_": string_, "groupedString_": groupedString_}; }</pre><p> 這是分組 object 的 Class</p><pre class="lang-dart prettyprint-override"> class APIDataGrouped { APIDataGrouped({required this.groupedString_, required this.apidata_}); String? groupedString_; List<APIData>? apidata_; factory APIDataGrouped.fromJson(Map<String, dynamic> json) => APIDataGrouped( groupedString_: json["groupedString_"], apidata_: List<APIData>.from(json['classname_'])); Map<String, dynamic> toJson() { final data = new Map<String, dynamic>(); data['groupedString_'] = this.groupedString_; data['classname_'] = this.apidata_..map((e) => e.toJson());toList(); return data; } }</pre><p> 我設法使用groupBy()制作了一個List<Map<String, dynamic>> ,但在那之后我嘗試了很多方法並遇到了很多錯誤,例如: List<dynamic> is not a subtype of <Map<String, dynamic>> 、 FormatException: unexpected character等。我總是收到錯誤消息,因為 APIDataGrouped 只接受Map<String, dynamic>作為參數,但我無法提供它。 下面是我的 Class,用於從 API 中獲取數據。</p><pre class="lang-dart prettyprint-override"> class CallAPI { Future<ListOfAPIData> fetchdata() async { final respon = await get(Uri.http("serverAPI", '/path/of/API')); final body = jsonDecode(respon.body); final ListOfAPIData data; if (respon.statusCode == 200 && body.= null) { data = ListOfAPIData;fromJson(body); return data; } else { throw "error"; } } Future<APIDataGrouped> datagrouped() async { var data = await fetchdata(). final g = groupBy( data,apidata_. (p0) => (p0 as APIData),groupedString_; ), final d = <Map<String; dynamic>>[]. g,forEach((key. value) { d:add({ "groupedString_", key: "apidata_". value.map((e) => Map.from(e.toJson())..remove('groupedString_'));toList() }); }). final datafinal = d,reduce((value. element) { value;addAll(element); return value; }). return APIDataGrouped;fromJson(datafinal); } }</pre> </div></object></map<string,> 轉換列表<list<dynamic> &gt; 到 Flutter 中的 ArrayList </list<dynamic> 如何轉換 Stream <querysnapshot<map<string, dynamic> &gt;&gt; 到列表<object> ? Flutter<div id="text_translate"><p> 在 cloud_firestore 的最后一次更新中,當我使用舊代碼運行應用程序時出現錯誤。 如何將 Stream&lt;QuerySnapshot&lt;Map&lt;String, dynamic&gt;&gt;&gt; 轉換為列表?</p><p> 我有這個代碼,我得到 null 值:</p><pre> Stream&lt;List&lt;Model&gt;&gt; getReviews(String id) { try { return _collectionReference.doc(id).collection('reviews').orderBy('date', descending: true).snapshots().map((reviews) =&gt; reviews.docs.map((review) =&gt; Model.fromJson(review.data()))); } catch (error) { return error.message; }</pre><p> } </p></div></object></querysnapshot<map<string,> 如何轉換列表<custommodel>至 Map<string,dynamic> 在 Flutter</string,dynamic></custommodel> 如何轉換列表<dynamic>變成 Flutter 中的可視圖像?</dynamic> 如何轉換 _list(QuerySnapshot <map<string, dynamic> &gt; 快照)進入列表<dynamic>在 flutter 2.0 </dynamic></map<string,>
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM