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. 4.dubbo 的 spi 思想是什么?

    作者:中华石杉 面试题 dubbo 的 spi 思想是什么? 面试官心理分析 继续深入问呗,前面一些基础性的东西问完了,确定你应该都 ok,了解 dubbo 的一些基本东西,那么问个稍微难一点点的问题 ...

  2. adb shell提示“adb server is out of date.” 解决方法

    [问题描述] 1.打开运行:window+R,输入cmd回车 2.使用命令 adb shell 无法登录安卓设备,提示如下: adb server is out of date.  killing.. ...

  3. HDU 1072 Nightmare 题解

    Nightmare Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  4. python调用oracle存储过程

    oracle 存储过程 python调用oracle存储过程 -- 通过cx_Oracle连接 import cx_Oracle # 连接数据库 orcl_engine = 'scott/s123@x ...

  5. 18-numpy笔记-莫烦pandas-6-plot显示

    代码 import pandas as pd import numpy as np import matplotlib.pyplot as plt data = pd.Series(np.random ...

  6. Tableau 练习题

    1.练习一 1. 提出问题:对某个学校或者一个城市的教育水平进行评估,或者多个学校的教育水平进行比较 指标:学生考试成绩 根据考试成绩高低判断教育水平:影响因素:学生餐饮,从多个维度分析,各城市在不同 ...

  7. 【LG1600】[NOIP2016]天天爱跑步

    [LG1600][NOIP2016]天天爱跑步 题面 洛谷 题解 考虑一条路径\(S\rightarrow T\)是如何给一个观测点\(x\)造成贡献的, 一种是从\(x\)的子树内出来,另外一种是从 ...

  8. 【可视化】Vue基础

    作者 | Jeskson 来源 | 达达前端小酒馆 Vue简介 Vue框架,框架的作者,尤雨溪,组件化,快速开发的特点. 生命周期 beforeCreate:组件刚刚被创建 created:组件创建完 ...

  9. 什么是默认登录shell,如何改变指定用户的登录shell?

    在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的.使用chsh命令可以改变默认的shell.示例如下所示: #chsh <username> -s & ...

  10. 雅礼集训 2017 Day4 编码(2-sat)

    题意 题目链接:https://loj.ac/problem/6036 思路 ​ 首先,有前缀关系的串不能同时存在,不难看出这是一个 2-sat 问题.先假设所有串都带问号,那么每一个字符串,我们可以 ...