前言:Dart本身是支持反射的,但是Flutter卻沒有像Gson或者FastJson這樣優(yōu)秀的json反序列化工具。因?yàn)榉瓷湓贔lutter中是被禁止的,具體參考官方文檔介紹:https://flutter.dev/docs/development/data-and-backend/json#is-there-a-gsonjacksonmoshi-equivalent-in-flutter

image.png
現(xiàn)在介紹一種比較好用的json反序列化工具:json_serializable,使用步驟如下:
1. 在 pabspec.ymal 文件中引入:
dependencies:
# 其他依賴包
json_annotation: ^2.0.0
dev_dependencies:
# 其他依賴包
# 運(yùn)行"flutter packages pub run build_runner build",生成.g輔助文件。
# 運(yùn)行"flutter packages pub run build_runner watch",可以實(shí)現(xiàn)文件監(jiān)聽,自動地為你后續(xù)創(chuàng)建的實(shí)體類生成對應(yīng)的解析代碼。 # 運(yùn)行"flutter packages pub run build_runner watch",生成.g輔助文件。
build_runner: ^1.0.0
json_serializable: ^2.0.0
2. 編寫實(shí)體類,可以使用這個(gè)網(wǎng)站快速生成想要的實(shí)體類。
可以選擇直接把文件下載下來,粘貼到項(xiàng)目中。

image.png
3. 運(yùn)行 "flutter packages pub run build_runner build" 生成 .g 后綴的文件。
然后就可以用了,可以自己選擇修改個(gè)別類名,然后自己折騰吧。
寫不是很詳細(xì),只是做個(gè)記錄,方便以后用到再看,如果有疑問歡迎留言。