当前位置: 首页 > wzjs >正文

建设大型视频网站需要的资金量百度app制作

建设大型视频网站需要的资金量,百度app制作,网站建设初期工作方案,德宏网站建设目录 一. 使用dart:convert实现JSON格式编解码1. 生成数据模型类2. 将JSON数据转化成数据模型类3. 数据模型类转化成JSON字符串 二、借助json_serializable实现Json编解码1.添加json_annotation、build_runner、json_serializable依赖2. 创建一个数据模型类3. 使用命令行生成JS…

目录

  • 一. 使用dart:convert实现JSON格式编解码
    • 1. 生成数据模型类
    • 2. 将JSON数据转化成数据模型类
    • 3. 数据模型类转化成JSON字符串
  • 二、借助`json_serializable`实现Json编解码
    • 1.添加`json_annotation`、`build_runner`、`json_serializable`依赖
    • 2. 创建一个数据模型类
    • 3. 使用命令行生成JSON序列化和反序列化的代码:
    • 4. 将JSON数据转化成数据模型类
    • 5. 数据模型类转化成JSON字符串
  • 三、 两种方案对比

一. 使用dart:convert实现JSON格式编解码

要在Flutter中解析JSON数据,您可以使用Flutter的内置库dart:convert。以下是一个简单的示例,演示如何解析JSON数据:

假设您有以下JSON数据(包含JSON数组和数据模型嵌套)

{"name": "John","age": 30,"email": "john@example.com","car": [{"name": "保时捷","price": 500},{"name": "奔驰","price": 1000}]
}

1. 生成数据模型类

数据模型生成网址: https://javiercbk.github.io/json_to_dart/
在这里插入图片描述

目前发现的缺点最外层是数组格式json生成的数据模型有问题,如下图:
在这里插入图片描述

class UserBean {String? name;int? age;String? email;List<Car>? car;UserBean({this.name, this.age, this.email, this.car});UserBean.fromJson(Map<String, dynamic> json) {name = json['name'];age = json['age'];email = json['email'];if (json['car'] != null) {car = <Car>[];json['car'].forEach((v) {car!.add(new Car.fromJson(v));});}}Map<String, dynamic> toJson() {final Map<String, dynamic> data = new Map<String, dynamic>();data['name'] = this.name;data['age'] = this.age;data['email'] = this.email;if (this.car != null) {data['car'] = this.car!.map((v) => v.toJson()).toList();}return data;}
}class Car {String? name;int? price;Car({this.name, this.price});Car.fromJson(Map<String, dynamic> json) {name = json['name'];price = json['price'];}Map<String, dynamic> toJson() {final Map<String, dynamic> data = new Map<String, dynamic>();data['name'] = this.name;data['price'] = this.price;return data;}
}

2. 将JSON数据转化成数据模型类

  • 导入dart:convert库:
import 'dart:convert';
  • 使用json.decode()方法解析JSON数据为一个Map对象:
 Map<String, dynamic> map = json.decode(jsonString);
  • map对象转化成数据模型类
  UserBean userBean = UserBean.fromJson(userBeanMap);

3. 数据模型类转化成JSON字符串

  • 导入dart:convert库:
import 'dart:convert';
  • 将数据模型类转化成map对象
Map<String,dynamic> userBeanMap1 = userBean.toJson();
  • Map对象转化成JSON字符串
String  userBeanJson = jsonEncode(userBeanMap1);

二、借助json_serializable实现Json编解码

1.添加json_annotationbuild_runnerjson_serializable依赖

dependencies:flutter:sdk: flutterjson_annotation: ^4.8.1dev_dependencies:...build_runner: '>=2.3.0 <4.0.0' json_serializable: ^6.6.2  ...

2. 创建一个数据模型类

serializable数据模型生成网址: https://caijinglong.github.io/json2dart/index_ch.html
在这里插入图片描述

import 'package:json_annotation/json_annotation.dart'; part 'user_bean.g.dart';()class UserBean extends Object {(name: 'name')String name;(name: 'age')int age;(name: 'email')String email;(name: 'car')List<Car> car;UserBean(this.name,this.age,this.email,this.car,);factory UserBean.fromJson(Map<String, dynamic> srcJson) => _$UserBeanFromJson(srcJson);Map<String, dynamic> toJson() => _$UserBeanToJson(this);}()class Car extends Object {(name: 'name')String name;(name: 'price')int price;Car(this.name,this.price,);factory Car.fromJson(Map<String, dynamic> srcJson) => _$CarFromJson(srcJson);Map<String, dynamic> toJson() => _$CarToJson(this);}

serializable数据模型3个要素:

  1. 导入json_annotation库注解,用于标识JSON字段和生成代码的相关信息。使用@JsonSerializable()注解类,用 @JsonKey(name: 'xx')注解字段,xx必须与JSON字段一一对应
  2. part 'xx.g.dart'; xx是当前文件名称,缺失这个配置或者配置错误,都会导致生成文件出错;
  3. _$XXFromJson_$XXToJson是通过build_runner自动生成的代码,用于序列化和反序列化JSON数据。

3. 使用命令行生成JSON序列化和反序列化的代码:

flutter packages pub run build_runner build

这个命令会为你的数据模型类生成user.g.dart文件,其中包含了_$XXFromJson_$XXToJson方法的实现。
XX.g.dart默认会生成在模型类的同级目录。

  1. 如果有其他.g文件存在影响,可用这个命令flutter packages pub run build_runner build --delete-conflicting-outputs
  2. 如果build成功,但是没有文件生成,需要检查part ‘xx.g.dart’;是否缺失或者配置错误

4. 将JSON数据转化成数据模型类

  • 导入dart:convert库:
import 'dart:convert';
  • 使用json.decode()方法解析JSON数据为一个Map对象:
 Map<String, dynamic> map = json.decode(jsonString);
  • map对象转化成数据模型类
  UserBean userBean = UserBean.fromJson(userBeanMap);

5. 数据模型类转化成JSON字符串

  • 导入dart:convert库:
import 'dart:convert';
  • 将数据模型类转化成map对象
Map<String,dynamic> userBeanMap1 = userBean.toJson();
  • Map对象转化成JSON字符串
String  userBeanJson = jsonEncode(userBeanMap1);

三、 两种方案对比

相同点:

  1. Map对象转化成JSON字符串以及将Map对象转化成JSON字符串都是依赖convert;
  2. JSON字符串和数据模型之间转化都需要借助Map对象;

不同点:

  1. 处理数据模型字段变更场景,方案二修改代码较少,出错的概率更低:

方案一需要添加或者修改字段并且手动修改fromJsontoJson方法;
方案二需要添加或者修改字段,添加相关注解,并重新使用命令行生成JSON序列化和反序列化的代码;

  1. Json最外层的数据结构是数组类型

方案一不支持
方案二支持


文章转载自:

http://eyna3W5U.qLwfz.cn
http://ih7rKgT1.qLwfz.cn
http://tdxNeYJx.qLwfz.cn
http://SG9ZPx17.qLwfz.cn
http://RIY9JBfJ.qLwfz.cn
http://ZDOesnR5.qLwfz.cn
http://vfF2SISQ.qLwfz.cn
http://7Q5xLPno.qLwfz.cn
http://Oo3J17bR.qLwfz.cn
http://gMuH1IIf.qLwfz.cn
http://Ea0KSJp9.qLwfz.cn
http://V7wGDntG.qLwfz.cn
http://9HxMX6HX.qLwfz.cn
http://ZXeyM1tb.qLwfz.cn
http://JROO7zQZ.qLwfz.cn
http://NLAiHriH.qLwfz.cn
http://qGDxq5Jj.qLwfz.cn
http://sCqqOfFb.qLwfz.cn
http://3SlOeN5R.qLwfz.cn
http://PW5PgyCK.qLwfz.cn
http://6X4902oe.qLwfz.cn
http://R5U7r2EE.qLwfz.cn
http://L7GV00FW.qLwfz.cn
http://2FSJOSwD.qLwfz.cn
http://MMmH4YIb.qLwfz.cn
http://UO9EDDO2.qLwfz.cn
http://GW56m8Ee.qLwfz.cn
http://3sFbwPrI.qLwfz.cn
http://RTKYB8YV.qLwfz.cn
http://urHYkPJ0.qLwfz.cn
http://www.dtcms.com/wzjs/674492.html

相关文章:

  • 网站建设的预算智能建站设计
  • 西安做网站公司工资怎样做摄影网站
  • 金融网站建设公司公司网站的具体的建设方案
  • 南宁京象建站公司网站建设优化之优化关键字
  • 网站开发业务ppt网站建设流程精英
  • 造价工程建设协会网站可以做内容的网站
  • 高端的响应式网站建设公司wordpress去category
  • 中期通网站建设wordpress 类似的
  • 谷歌网站推广方案中国建设厅网站首页
  • 怎么给网站做懒加载大连企业网站制作
  • 做网站服务站长seo
  • 手机建站平台可上传自己视频wordpress文章对游客不显示
  • 网站开发的教学网站广州市网站设计公司
  • 网站的seo如何优化wordpress 支付 API
  • 网站设计建网站安徽省建设工程安全+协会网站
  • 国内知名网站网络营销渠道可分为哪些
  • 网站建设gon文创产品创意设计
  • 视频网站怎么建设玉儿做春梦网站
  • 制作网站用c 做前台常州建站公司模板
  • 邯郸做移动网站哪儿好wordpress移动端适配
  • 广州建站模板平台成都好玩的地方
  • 网站优化怎么弄聊城做网站建设的公司
  • 在互易上做的网站如何修改公司管理网站首页
  • 网站找人做备案的价格做英语教具的网站
  • 无锡军自考网站建设网站源码做exe执行程序
  • 做门户网站cms门户论坛模板
  • 网站做收录如何做网站地图视频
  • 那间公司做网站好网站怎么办
  • 网络科技公司网站建设海拉尔网站设计
  • 上海哪学网站建设优化呼叫中心系统源码