當前位置:成語大全網 - 新華字典 - Flutter -- JSON解析

Flutter -- JSON解析

由於 Flutter 不支持運行時反射,JSON 解析完全是手動的。

所謂手動解析,是指使用 dart:convert 庫中內置的 JSON 解碼器,將 JSON 字符串解析成自定義對象的過程。使用這種方式,我們需要先將 JSON 字符串傳遞給 JSON.decode 方法解析成壹個 Map,然後把這個 Map 傳給自定義的類,進行相關屬性的賦值。

下面動手解析壹個用戶的信息

首先,我們根據 JSON 結構定義 User類,並創建壹個工廠類,來處理 User 類屬性成員與 JSON 字典對象的值之間的映射關系:

數據解析類創建好了,剩下的事情就相對簡單了,我們只需要把 JSON 文本通過 JSON.decode 方法轉換成 Map,然後把它交給 User 的工廠類 fromJson 方法,即可完成 User 對象的解析:

項目中往往會碰到 嵌套對象屬性 情況,

面對這種情況,我們需要為每壹個非基本類型屬性創建壹個解析類。

然後,我們只需要在 User 類中,增加 dog 屬性及對應的 JSON 映射規則即可:

通過這種方法,無論對象有多復雜的非基本類型屬性,我們都可以創建對應的解析類進行處理。

不過到現在為止,我們的 JSON 數據解析還是在主 Isolate 中完成。如果 JSON 的數據格式比較復雜,數據量又大,這種解析方式可能會造成短期 UI 無法響應。下面我們可以用 compute 函數優化壹下

通過 compute 的改造,我們就不用擔心 JSON 解析時間過長阻塞 UI 響應了。