Flutter json解析

参考:Flutter json转实体类(插件自动生成)

生成实体类工具

  1. 网页生成实体类工具:https://javiercbk.github.io/json_to_dart/

  2. Android studio中生成实体类工具:FlutterJsonBeanFactory

在这里插入图片描述

示例:

import 'dart:convert';

//引入生成的实体类
import 'JsonBean.dart';

main() {
  var jsonData = '''
{
  "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"
    }, {
      "uniquekey": "c92887585d01563c077c7be7f23dca87",
      "title": "《还珠格格》中的演员都老了,网友:五阿哥还是很帅",
      "date": "2019-03-06 12:44",
      "category": "头条",
      "author_name": "北青网",
      "url": "http:\/\/mini.eastday.com\/mobile\/190306124440102.html"
    }]
  },
  "error_code": 0
}
            ''';

  print("------------------- 方法一: ---------------------------");

  /*将字符串转成json  返回的是键值对的形式*/
  Map<String, dynamic> news = jsonDecode(jsonData);
  String sats = news['result']['stat'];
  print(sats);
  //方括号是List
  var data = news['result']['data'];
//  print(data is Map);//false
//  print(data is List);//true
  //大括号是Map
  for (var value in data) {
//    print(value is Map);//true
//    print(value is List);//false
    print(value['url']);
  }
  
  print("------------------- 方法二: ---------------------------");
  //将字符串拷贝到这里生成实体类  https://javiercbk.github.io/json_to_dart/
  //android studio 安装 FlutterJsonBeanFactory 插件 ,生成实体类
  Map<String, dynamic> news1 = jsonDecode(jsonData);
  //转为实体类
  NewsBean newsBean = NewsBean.fromJson(news1);
  /*取值*/
  String sats1 = newsBean.result.stat;
  print(sats1);
  List<Data> data1 = newsBean.result.data;
  for (var value in data1) {
    print(value.url);
  }
}

注意:

解析json字符串时:

//方括号是List
var data = news['result']['data'];
//  print(data is Map);//false
//  print(data is List);//true

//大括号是Map
for (var value in data) {
//    print(value is Map);//true
//    print(value is List);//false
print(value['url']);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值