Flutter(二十)——JSON解析

前言

前一篇博文已经详细介绍了Flutter开发中的网络请求,但其实大多数项目中,返回HTML内容是不够的,因为移动端使用的最多的请求是JSON数据,所以我们需要掌握Flutter开发中,JSON解析的知识。JSON(javaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式)

JSON转换成Dart对象

假设,我们现在是开发的是一款新闻App,通过访问相关的接口之后,服务器返回了这样一条简单的JSON数据,如下图所示:

{
   "title":"疫情疫苗出世,多板块重大利好"}

那么我们应该如何处理这条数据显示在界面上呢?相信有过Java开发Android经验的读者,肯定知道如何把这段数据还原成一个对象,并且在界面显示出来。同样,在Flutter开发中,也可以把这个JSON数据转换为Dart对象,我们先定义Dart对象News,代码如下:

class News{
   
  final String title;
  
  News({
   this.title});
  
  factory News.fromJson(Map<String,dynamic> json){
   
    return News(
      title: json['title'],
    );
  }
}

在dart:convert里面有一个JSON常量,它是负责处理服务端返回的JSON数据的,在请求响应回来的时,通过json.decode(response.body)方法调用可以把JSON结果转换城Map类型或List类型。如果是一个JSON对象,返回将是一个Map;如果是JSON数组,则会返回List。

上面代码之所以把map的value定义成dynamic,是因为不肯定value的类型,毕竟有可能是字符串,有可能是整型,还是用这个自动匹配类型最实在。

实践

在JSON解析之后,我们需要把结果通过界面的形式展现给用户看,所以下面我们直接来实现其功能:

class MyHomePage extends StatefulWidget {
   
  MyHomePage({
   Key key, this.title}) : super(key: key);

  final String title;

  @override
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李元静

您的鼓励就是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值