Json數據轉成實體類的好處
將Json數據轉成實體類可以方便我們開發的時候使用數據,手動輸入字段名稱的話很容易出錯,並且接口多的話很不好維護。
Flutter中是否有Gson、FastJson這樣的庫
在Android原生開發中,我們有很好用的Gson、FastJson等第三方庫來幫助我們將json轉成實體類。但是,在Flutter中可能不會有這樣的第三方庫供我們使用了,詳細原因請看 JSON and serialization
Flutter 中如何處理Json
Flutter給我們提供了 dart:convert 包,我們可以通過
json.decode(json) 來序列化json
例子:
json數據如下:
{ "reason": "成功的返回", "result": { "stat": "1", "data": [{ "uniquekey": "0bb54602fcc15111afca8452cc127d57", "title": "口香糖銷量下降30%,你一定猜不到原因", "date": "2019-03-06 12:55", "category": "頭條", "author_name": "解放網", "url": "http:\/\/mini.eastday.com\/mobile\/190306125558115.html", "thumbnail_pic_s": "http:\/\/01imgmini.eastday.com\/mobile\/20190306\/20190306125558_d2b6545a4b6273201218c32c6ffe436a_1_mwpm_03200403.jpg" }, { "uniquekey": "c92887585d01563c077c7be7f23dca87", "title": "《還珠格格》中的演員都老了,網友:五阿哥還是很帥", "date": "2019-03-06 12:44", "category": "頭條", "author_name": "北青網", "url": "http:\/\/mini.eastday.com\/mobile\/190306124440102.html", "thumbnail_pic_s": "http:\/\/04imgmini.eastday.com\/mobile\/20190306\/20190306124440_bfad5f823d7fcad5e044754e095278ef_1_mwpm_03200403.jpg", "thumbnail_pic_s02": "http:\/\/04imgmini.eastday.com\/mobile\/20190306\/20190306124440_bfad5f823d7fcad5e044754e095278ef_4_mwpm_03200403.jpg", "thumbnail_pic_s03": "http:\/\/04imgmini.eastday.com\/mobile\/20190306\/20190306124440_bfad5f823d7fcad5e044754e095278ef_2_mwpm_03200403.jpg" }] }, "error_code": 0 }
我們可以通過:
首先記得先導包:
import 'dart:convert';
然后:
/*將字符串轉成json 返回的是鍵值對的形式*/ Map<String, dynamic> news = jsonDecode(jsonData); /*取值*/ String sats = news['result']['stat'];
可以看到,我們這樣取值是需要手動的敲字段來獲取數據的,一旦字段比較多的話,就很麻煩
Flutter Json轉實體類(一鍵生成)
在開發過程中,我們一般都是使用插件或工具一鍵生成實體類的,這樣極大的提高了開發效率,目前我們可以通過在線生成和安裝插件生成的方式來一鍵生成Dart類。
方式一:在線生成
使用步驟:
1.首先打開 json_to_dart
頁面如下:
2.將json數據賦值到輸入框中,點擊創建Dart類,然后右邊就是生成好的Dart代碼,類名可以復制到編輯器后自行修改
3.創建一個Dart類,將類名自行修改一下
4,使用方式如下
/*先將字符串轉成json*/ Map<String, dynamic> json = jsonDecode(jsonData); /*將Json轉成實體類*/ NewsBean newsBean=NewsBean.fromJson(news); /*取值*/ String sats = newsBean.result.stat;
方式二:安裝FlutterJsonBeanFactory插件生成
首先安裝FlutterJsonBeanFactory這個插件,安裝方式很簡單,這里我就不說了。
安裝完成后右鍵包目錄,選擇new
然后選擇dart bean class File from JSON
然后將json數據粘貼至輸入框,輸入類名,點擊make即可
這樣實體類就生成好了
用插件生成也是很方便的。
如果你覺得本文對你有幫助,麻煩動動手指頂一下,算是對本文的一個認可。也可以關注我的 Flutter 博客專欄,我會不定期的更新,如果文中有什么錯誤的地方,還望指正,轉載請注明轉自喻志強的博客 ,謝謝!
點贊 8
————————————————
版權聲明:本文為CSDN博主「XeonYu」的原創文章,遵循 CC 4.0 BY 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yuzhiqiang_1993/java/article/details/88533166