Flutter json轉實體類(插件自動生成)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM