vs code作为编辑器

1. 首先,json对象与字符串的转换是使用json.encode和json.decode的,需要导入import 'dart:convert';

 这里主要的自然不是这个,而是json对象和实体对象的转换

  当然,实际上json对象算是一个Map对象,直接通过键访问就可以得到值,即通过实体对象的属性名就可以得到值。
  这里只是把这一步通过命令生成而已

2. 导入对应的flutter包

即在pubspec.yaml中添加

dependencies:
  json_annotation: ^3.0.0
dev_dependencies:
  build_runner: ^1.0.0
  json_serializable: ^3.2.0
保存将自动加载,或者终端输入flutter packages get,亦或者vs code中点击“查看-命令面板”再输入Flutterget就会出现
 
3. 创建实体的dart文件,下面以news为例 —— 可以用https://caijinglong.github.io/json2dart/index_ch.html生成
import 'package:json_annotation/json_annotation.dart';//注意必须导入,不然无法使用@JsonSerializable()
part "news.g.dart";//严格区分大小写,且必须是文件名中间加上g.,否则无法成功。另外也是必须的,因为要生成一个转换部分文件
@JsonSerializable()//注意加上,后面命令识别用
class News extends Object {
  final String author;
  final String title;
  final String description;
  final String url;
  final String urlToImage;
  final String publishedAt;
  final Source source;
  News(this.author,
      this.title,
      this.description,
      this.url,
      this.urlToImage,
      this.publishedAt,
      this.source);
}
 
4. 终端输入命令flutter packages pub run build_runner build
等到成功,每个json序列化都将会有一个输出

这样就生成好了一个转换类news.g.dart,此时转换文件中有_$NewsFromJson方法

你会发现竟然是报错的??那是因为你主类中缺少了命名式构造函数,加上即可

factory News.fromJson(Map<String, dynamic> json) => _$NewsFromJson(json);
5. 这样,你就可以通过命名构造函数从json对象转换为实体对象了
6. 当然还要说说缺陷和坑:
  1)泛型无法成功
  2)最好确定文件名后再执行命令,不然重命名可能会发生很难解决的事情
 
 

Flutter实体与JSON解析的一种方法的更多相关文章

  1. IOS中Json解析的四种方法

    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验 ...

  2. JSON 解析的两种方法

    今天帮朋友看了下JSON解析结果············· eval解析JSON中的注意点 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. ...

  3. 【转】IOS中Json解析的四种方法

    原文网址:http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有 ...

  4. iOS json解析的几种方法 NSJSONSerialization,JSONKit,SBJson ,TouchJson

    相关的第三方类库大家可以去github上下载 1.NSJSONSerialization 具体代码如下 : - (void)viewDidLoad { [super viewDidLoad]; NSD ...

  5. Java构造和解析Json数据的两种方法详解二

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...

  6. Java构造和解析Json数据的两种方法详解二——org.json

    转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的jso ...

  7. Java构造和解析Json数据的两种方法详解一——json-lib

    转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的jso ...

  8. 解析Xml四种方法

    关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath [引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文 ...

  9. JQuery遍历json数组的3种方法

    这篇文章主要介绍了JQuery遍历json数组的3种方法,本文分别给出了使用each.for遍历json的方法,其中for又分成两种形式,需要的朋友可以参考下 一.使用each遍历 $(functio ...

随机推荐

  1. Jenkins 打tag回滚

    利用jenkins,从gitlab上拉取代码,然后发布,如果想进行代码回退,其实还是代码发布,拉取的时候,选择合适的标签. 一.利用Git parameter插件选择branch或tag.下面的文本参 ...

  2. Git学习笔记3-远程仓库

    1.添加远程仓库 $ git remote add [shortname] [url] $ git remote add origin https://github.com/Mike199201/Gi ...

  3. SSM整合开发——基于SSM的OA系统

    一.课程介绍 链接: https://pan.baidu.com/s/18B-lWfOUnKZPvuVEHY_NmQ 提取码: ky7t 复制这段内容后打开百度网盘手机App,操作更方便哦 需要 to ...

  4. LOJ 3184: 「CEOI2018」斐波那契表示法

    题目传送门:LOJ #3184. 题意简述: 题目说得很清楚了. 题解: 首先需要了解「斐波那契数系」为何物. 按照题目中定义的斐波那契数列 \(F_n\),可以证明,每个非负整数 \(n\) 都能够 ...

  5. Meven父工程子模块的SSM框架实现银行转账

            <Meven父工程子模块的SSM框架实现银行转账>                              课程实验报告 实验名称 Meven父工程子模块的SSM框架实现 ...

  6. ISerializable接口

    继承ISerializable接口可以灵活控制序列化过程 格式化器的工作流程:格式化器再序列化一个对象的时候,发现对象继承了ISerializable接口,那它就会忽略掉类型所有的序列化特性,转而调用 ...

  7. odoo fields_view_get

    odoo fields_view_get创建动态视图方法 odoo  fields_view_get方法是一个比较有用比较灵活的广泛,如果使用得当,可以做到一些常规方法无法实现的功能,本文列举若干种用 ...

  8. 清北学堂(2019 5 2) part 5

    今天讲图论,顺便搞一搞之前没弄完的前向星dij 1.图的基本概念(课件原话): G (图)= (V(点); E(边)) 一般来说,图的存储难度主要在记录边的信息 无向图的存储中,只需要将一条无向边拆成 ...

  9. 【51Nod1555】布丁怪

    [51Nod1555]布丁怪 题面 51Nod 题目大意: 给你一个\(n\times n\)的棋盘以及\(n\)个棋子,每个棋子坐标为\((x_i,y_i)\),保证棋盘的每一行或一列都有且仅有一个 ...

  10. Linux性能优化实战学习笔记:第四十讲

    一.上节回顾 上一节,我们学习了碰到分布式拒绝服务(DDoS)的缓解方法.简单回顾一下,DDoS利用大量的伪造请求,导致目标服务要耗费大量资源,来处理这些无效请求,进而无法正常响应正常用户的请求. 由 ...