irpas技术客

flutter Json转Dart_老仙儿_json转dart

未知 5675

Flutter 中如何处理Json

Flutter给我们提供了?dart:convert?包,我们可以通过

json.decode(json) ?来序列化json? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例子: json数据如下:

{ "reason": "成功的返回", "result": { "stat": "1", "data": [{ "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" }, { "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", }] }, "error_code": 0 }; //将字符串转成json 返回的是键值对的形式 Map<String, dynamic> news = jsonDecode(jsonData); //取值 String sats = news['result']['stat'];

可以看到,我们这样取值是需要手动的敲字段来获取数据的,比较麻烦,所以下面讲一下自动生成Bean实体类。

方式一:在线转换? Json在线转Dart

? ? 1、将json数据赋值到输入框中,点击创建Dart类,然后右边就是生成好的Dart代码,类名可以复制到编辑器后自行修改。

?2、创建一个Dart类,将类名自行修改一下

?3、使用方式:

? ? /*先将字符串转成json*/ ? ? Map<String, dynamic> json = jsonDecode(jsonData); ? ? /*将Json转成实体类*/ ? ? NewsBean newsBean=NewsBean.fromJson(news); ? ? /*取值*/ ? ? String sats = newsBean.result.stat;

方式二:插件

? ? ?在Android原生开发中,我们有很好用的Gson、FastJson等第三方库来帮助我们将json转成实体类。但是,在Flutter中可能不会有这样的第三方库供我们使用了,详细原因请看?JSON and serialization

首先安装FlutterJsonBeanFactory这个插件,安装方式很简单,这里我就不说了。

安装完成后右键包目录,选择new

然后选择dart bean class File from JSON

?然后将json数据粘贴至输入框,输入类名,点击make即可

?

这样实体类就生成好了:

?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #json转dart #Flutter #来序列化json