Flutter中的JSON解析
在客户端开发的过程中,JSON的序列化与反序列化是一个常见的操作,有非常好用的gson,fastjson。由于Flutter中是禁止使用反射的,所以在flutter中并没有这样的库,所以在flutter中使用json的解析还是比较繁琐的,不像java那么简单。下面总结常用的json解析:
一、使用dart:convert内置库解析
1、示例一
(1)json结构
{
"callback":"success",
"data":"张三"
}
(2)将json转为Map
const Map<String, dynamic> json1 = {"callback": "success", "data": "张三"};
(3)创建json的对象,创建解析工厂
class Json1 {String? callback;String? data;Json1({this.callback, this.data});factory Json1.fromJson(Map<String, dynamic> json) {return Json1(callback: json['callback'],data: json['data'],);}
}
(4)打印使用
Json1 j1 = Json1.fromJson(json1);
print(j1.data);
print(j1.callback);
2、示例二
(1)json结构
{
"callback":"success",
"data":[
"张三",
"李四"
]
}
(2)将json转为Map
const Map<String, dynamic> json2 = {"callback": "success", "data": ["张三", "李四"]};
(3)创建json的对象,创建解析工厂
class Json1 {String? callback;List<String>? data;Json1({this.callback, this.data});factory Json1.fromJson(Map<String, dynamic> json) {return Json1(callback: json['callback'],data: json['data'],);}
}
(4)打印使用
Json1 j1 = Json1.fromJson(json2);
j1.data?.forEach((element) {print(element);
});
print(j1.callback);
3、示例三
{
"callback":"success",
"data":{
"name":"张三",
"age":30
}
}
const Map<String, dynamic> json2 = {"callback": "success","data": {"name": "张三", "age": 30}
};class Json1 {String? callback;Data? data;Json1({this.callback, this.data});factory Json1.fromJson(Map<String, dynamic> json) {return Json1(callback: json['callback'],data: Data.fromJson(json['data']),);}
}class Data {String? name;int? age;Data({ this.name, this.age});factory Data.fromJson(Map<String, dynamic> json) {return Data(name: json['name'],age: json['age'],);}
}
打印:
二、使用工具解析
工具解析比较复杂的json结构十分的方便,下面介绍两种:
1、使用在线网站解析
https://javiercbk.github.io/json_to_dart/
会自动将json转为dart对象,直接使用。
2、使用Android Studio自带的插件
使用方法:选中包名,右键,选择New->选择插件Json to dart。
这两种方式生成的类一样。
使用方法:
Xxx xx = Xxx.fromJson(json);
注意:参数类型是Map<String, dynamic>形式的,不能是字符串,或者转义字符串,否则报错:
type ‘String‘ is not a subtype of type ‘int‘ of ‘index‘
Flutter中的JSON解析相关推荐
- Android JSONObject – Android中的JSON解析
Android JSONObject is used for JSON parsing in android apps. In this tutorial we'll discuss and impl ...
- 江在川上曰:js中的JSON解析和序列化
江在川上曰:js中的JSON解析和序列化 JSON解析和序列化 JSON是javascript的一个严格的子集,利用了javacript中的一些模式来表示结构化数据.他只是一种数据格式,并非一种编程语 ...
- flutter 动画json_Flutter 中的 JSON 解析
JSON 是我们开发中最常使用的一种数据格式,这篇文章中,我们主要看看在开发中最常见的几种格式的 JSON 数据在 Flutter 中的解析: 以下案例中,我们都会将json文件放到本地,也就是 as ...
- Flutter中使用flutter_html解析html文件
1. 安装插件 配置 flutter_html 插件. dependencies:flutter:sdk: flutterflutter_localizations:sdk: flutterdate_ ...
- Android中的JSON解析方式:json; Gson ; Fastjson
本文主要介绍Json数据的解析 ----a,json数据的介绍 ----b,json数据的解析 ----c,gson数据的解析,谷歌公司的一种格式 ----d,fastjson数据的解析,阿里巴巴的一 ...
- iOS中的JSON解析
一.在iOS中,JSON的常见解析方案有4种 (1)第三方框架:JSONKit.SBJson.TouchJSON(性能从左到右,越差) (2)苹果原生(自带):NSJSONSerialization( ...
- Flutter开发之JSON解析
对于JSON格式的数据交互,想必大家不会陌生.JSON(全称JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,JSON因为具有易于人阅读和编写,同时 ...
- Android 中的Json解析工具fastjson 、序列化、反序列化
Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括"序列化"和&qu ...
- pythonjson数据解析错误是什么意思_Python中的JSON解析错误
我使用Python2.7.6来解析一个JSON文件,但是我遇到了一个错误,我不确定原因.我的Python第一次处理这个问题可能有点错.在 下面是我解析数据的python代码:import json f ...
- 微信小程序JS中写Json解析for 数组的用法
前言: 1 JS作为小程序的函数库,大家可以作为一个模块编写好自己的函数,然后就可以随心所欲的去创作了.Json的调用,比前面我写的更加简洁写,直接贴代码,应该更加容易懂了. 2 刚入手小程序有些语言 ...
最新文章
- smart-socket如何实现字符串通信
- [笔记]React+Cordova踩坑
- Golang 为什么不能直接将任意类型数组赋值给 []interface{}完成泛型操作
- 饥荒海难机器人怎么用_饥荒开发商又一款神作,难到吐血的生存游戏!
- opendir 从不兼容的指针类型赋值
- [vue] prop验证的type类型有哪几种?
- Winform开发框架之终极应用 - 伍华聪 - 博客园
- java坦克大战图片素材包_坦克大战图片素材
- 谦虚的向大家问个技术问题,树型结构的排序问题
- php excel 高度,PHPExcel,自动调整行高
- 爬虫---数据的提取
- 爱荷华州立 计算机博士,2020年美国爱荷华州立大学博士全奖招生
- Transmission搭建BT下载服务器
- 【Python】PEP8规范中一些需要注意的地方
- 人民币小写转大写的一般方法
- 慈航公益仲恺义工大区和爱心企业助力探亲日慈善活动
- 沟通的艺术:看人入里,看出人外 - part6
- 四川省计算机应用教材,四川省电子科技大学计算机应用技术
- android 7.1内存泄漏,android - Android 7.1和7本机崩溃:libc.so tgkill + 12 - 堆栈内存溢出...
- matlab与maple互联,Maple与Matlab