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. Linux上安装git

    Linux上安装git Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 而国外的GitHub和国内的Coding都是项目的托管平台.但是在使用Git工具的时候 ...

  2. Centos 7 修改网卡名称、静态IP

    修改内核选项 # vim /etc/sysconfig/grub GRUB_TIMEOUT= GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc ...

  3. UGUI 逻辑以及实用性辅助功能

    UGUI 有它的实用性, 可是也存在理解上的困难, 因为它在面板上的显示内容根据布局而变动, 如果不深入理解它的设计原理, 估计每次要进行程序上的修改都需要进行一次换算和测试过程. 1. 设置某UI的 ...

  4. 在springboot或者ssm框架或者类似的框架中VO、DTO、DO、PO的概念、区别和用处

    该文章主要讨论我们开发过程当中会经常用到的对象:VO.DTO.DO.PO;由于项目和每个人的命名习惯,这里只是对这些概念进行阐述.概念: VO(View Object):视图对象,用于展示层,它的作用 ...

  5. LVS(二):四种工作模型

    面试的时候必问这个四种工作模式,因为这几乎是企业里面必用的内容,所以一定要将其理解通透. 一.lvs-nat模式 二.LVS-DR模式(默认) 三.LVS-tun模式 四.LVS-fullnat模式 ...

  6. centos7-cockpit

    yum install cockpit* -y systemctl start cockpit.service systemctl enable cockpit.service 修改默认端口9090 ...

  7. web权限验证方法说明[转载]

    前言 本文将会从最基本的一种web权限验证说起,即HTTP Basic authentication,然后是基于cookies和tokens的权限验证,最后则是signatures和一次性密码. HT ...

  8. Docker简介(一)

    一.为什么会有Docker 环境配置很麻烦,换了台机器,就得全部重新配置一次. 二.Docker的理念 Docker是基于Go语言实现的云开源项目. Docker的主要目标是“Build,Ship a ...

  9. ibatis<iterate>标签

    <iterate  property="" 从传入的参数集合中使用属性名去获取值,   这个必须是一个List类型,   否则会出现OutofRangeException, ...

  10. biopython处理中蜂基因组

    1.安装包 pip install bcbio-gff pprint 2.显示中蜂的序列 from Bio import SeqIO genome_name = 'GCF_001442555.1_AC ...