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

flutter 解析json另类封装方式 List<bean>,哈哈哈

flutter 解析json另类封装方式,哈哈哈
日常学习,仅供参考,不喜 勿喷

http请求数据泛型解析封装,需要判断泛型数据类型再根据类型解析,本文只抽取了list演示

核心代码

import 'dart:convert';import 'package:webwsyn/http/bean/login_list.dart';
import 'package:webwsyn/http/bean/model.dart';class ttzq {Future<List<T>> listPost<T>(String data, T Function(dynamic data) parseModel) async {try {final jsonMap = jsonDecode(data);print('接收数据:' + data);Model<List<dynamic>> response1 = Model<List<dynamic>>.fromJson(jsonMap);List<dynamic> list = response1.data as List;return list.map((e) => parseModel(e)).toList();} catch (e) {throw Exception('Failed to send POST request ${e}');}}
}///测试方法
Future<int> main() async {String jsonData ='{"code":200,"message":"操作成功","isboolean":true,"data":[{"id":1,"name":"admin","password":"123456"}]}';ttzq().listPost<LoginList>(jsonData, (data) => LoginList.fromJson(data)).then((value) {List<LoginList> list = value;print(list[0].name);print("${list}"); // 打印返回的数据});return 0;
}

//结构类

//json解析
import 'package:json_annotation/json_annotation.dart';()
class LoginList {late int id;late String name;late String password;LoginList.fromJson(Map<String, dynamic> json) {id = json['id'] as int;if (json.containsKey('name')) {name = json['name'] as String;}if (json.containsKey('password')) {password = json['password'] as String;}}Map<String, dynamic> toJson() =>{'id': id, 'name': name, 'password': password};}
//json解析
import 'package:json_annotation/json_annotation.dart';()
class Model<T> {late bool isboolean;late int code;late T data;late String message;Model({required this.isboolean,required this.code,required this.data,required this.message,});Model.fromJson(Map<String, dynamic> json) {isboolean = json['isboolean'] as bool;code = json['code'] as int;if (json.containsKey('message')) {message = json['message'] as String;}if (json.containsKey('data')) {data = json['data'] as T;}}Map<String, dynamic> toJson() =>{'isboolean': isboolean, 'code': code, 'message': message, 'data': data};
}

导入架包

dependencies:flutter:sdk: flutter#json:json_annotation: ^4.8.0

相关文章:

flutter 解析json另类封装方式 List<bean>,哈哈哈

flutter 解析json另类封装方式&#xff0c;哈哈哈 日常学习&#xff0c;仅供参考&#xff0c;不喜 勿喷 http请求数据泛型解析封装&#xff0c;需要判断泛型数据类型再根据类型解析&#xff0c;本文只抽取了list演示 核心代码 import dart:convert;import package:webwsyn/h…...

哈希表(Hash table)

哈希表(Hash table),也称为散列表,是一种根据关键码值(Key value)直接进行访问的数据结构。它通过散列函数(Hash function)将关键码值映射到表中的一个位置,以此来访问记录,从而加快查找的速度。以下是关于哈希表的详细解释: 基本概念 散列函数:将关键码值映射到表…...

【c语言】自定义类型-结构体

结构体 结构体的声明与使用结构体的声明与初始化结构体的自引用 结构体的内存对齐对齐规则为什么存在内存对齐修改默认对齐数 结构体的传参结构体实现位段什么是位段位段的内存分配位段的跨平台问题位段使用的注意事项 结构体&#xff1a;是一个自定义的类型&#xff0c;成员可…...

2-链表-71-环形链表 II-LeetCode142

2-链表-71-环形链表 II-LeetCode142 参考&#xff1a;代码随想录 LeetCode: 题目序号142 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;CodeZeng1998&#…...

【UnityShader入门精要学习笔记】第十七章 表面着色器

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 我的GitHub仓库 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 表面着色器…...

Python社会经济 | 怀特的异方差一致估计量

&#x1f3af;要点 &#x1f3af;算法​和模型底层数学及代码&#xff1a;&#x1f58a;线性代数应用&#xff08;主成分分析&#xff09;&#xff1a;降维、投影&#xff08;用于求解线性系统&#xff09;和二次形式&#xff08;用于优化&#xff09;| &#x1f58a;奇值分解…...

《被讨厌的勇气》笔记

自由就是被别人讨厌。对人而言&#xff0c;最大的不幸就是不喜欢自己。活在“如果怎样怎样”之类的假设之中&#xff0c;就根本无法改变。活在害怕关系破裂的恐惧之中&#xff0c;那是为他人而活的一种不自由的生活方式。人生是连续刹那&#xff0c;我们只能活在“此时此刻”。…...

Python爬虫协程批量下载图片

import aiofiles import aiohttp import asyncio import requests from lxml import etree from aiohttp import TCPConnectorclass Spider:def __init__(self, value):# 起始urlself.start_url value# 下载单个图片staticmethodasync def download_one(url):name url[0].spl…...

Flask Web开发基础:数据库与ORM实战

Flask Web开发基础&#xff1a;数据库与ORM实战 该文介绍了如何使用 Flask、SQLAlchemy 和 SQLite 实现数据库操作。首先&#xff0c;通过创建虚拟环境和安装 flask-sqlalchemy&#xff08;版本2.5.1&#xff09;及 sqlalchemy&#xff08;版本1.4.47&#xff09;来设置环境。接…...

pidstat -d 1分析磁盘吞吐量

iostat -dx 1 查看磁盘IO吞吐量 pidstat -d 1看是哪个进程写的...

期望20K,2年golang深圳某互联网小公司一面

后续约了二面&#xff08;CTO面&#xff09;&#xff0c;需要到现场&#xff0c;基本没问啥具体的技术知识&#xff0c;都是聊规划和个人职业目标 一面 1、假设访问百度网站&#xff0c;从在浏览器输入网址&#xff0c;到最终页面展示出来&#xff0c;中间会发生哪些事情&…...

#02 安装指南:如何配置Stable Diffusion环境

文章目录 前言前置条件第1步&#xff1a;安装Python和PIP第2步&#xff1a;创建虚拟环境第3步&#xff1a;安装PyTorch和CUDA第4步&#xff1a;安装Stable Diffusion相关库第5步&#xff1a;测试环境结论 前言 在之前的文章中&#xff0c;我们介绍了Stable Diffusion基础入门和…...

拼多多笔试

拼多多2022数据分析笔试&#xff08;0822&#xff09; 一、选择题 1.已知样本量n&#xff0c;样本均值及方差求置信区间 2.决策树 3.峰度系数 4.协方差 5.第一、第二熵变 6.充分统计量 7.xgboost 8.方差分析中的多重比较 二、编程题 1. 一张用户点击路径的表&#x…...

Golang | Leetcode Golang题解之第119题杨辉三角II

题目&#xff1a; 题解&#xff1a; func getRow(rowIndex int) []int {row : make([]int, rowIndex1)row[0] 1for i : 1; i < rowIndex; i {row[i] row[i-1] * (rowIndex - i 1) / i}return row }...

Flutter 中的 SliverIgnorePointer 小部件:全面指南

Flutter 中的 SliverIgnorePointer 小部件&#xff1a;全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架&#xff0c;它提供了一系列的组件来帮助开发者构建高性能、美观的移动、Web 和桌面应用。在 Flutter 的滚动组件中&#xff0c;SliverIgnorePointer 是一个用来包…...

比较两台计算机上的LabVIEW、工具包及驱动程序的一致性

比较两台计算机上的LabVIEW、工具包及驱动程序是否相同&#xff0c;可以通过以下步骤实现&#xff1a; 1. 检查LabVIEW版本 方法一&#xff1a;在LabVIEW中查看版本信息 步骤&#xff1a; 打开LabVIEW。点击菜单栏的 Help > About LabVIEW。记录显示的LabVIEW版本号和许可…...

参考——温湿度传感器DHT11驱动_STM32

设备&#xff1a;stm32f407ZGT6 环境&#xff1a;FreeRTOS HAL 到网上找DHT11的驱动&#xff0c;但是都无法使用。原因是RTOS环境中&#xff0c;由于多线程&#xff0c;使用循环计数阻塞式的delay_us延时函数就没那么准&#xff0c;且不同设备中delay_us的计数值不一样…...

架构每日一学 14:架构师如何进行可行性探索?

架构活动中&#xff0c;如果不进行可行性探索可能会导致重大失误&#xff0c;为企业发展带来风险。 可行性探索是架构活动的最后一个节点&#xff0c;在这之后的架构活动就像是离弦之箭&#xff0c;即便发现重大风险也很难再回头了。 互联网公司之间的竞争非常激烈&#xff0…...

多线程知识-13

为什么应该在循环中检查等待条件 为了实现多线程的同步和协调&#xff0c;通常使用等待和唤醒机制。在等待和唤醒机制中&#xff0c;等待条件是指一个线程等待某个条件的满足&#xff0c;当条件满足时&#xff0c;线程被唤醒继续执行。 在循环中检查等待条件的目的是为了避免虚…...

vue3+cli-service配置代理,跨域请求

一、配置代理端口和代理转发 在vue.config.js文件中 const {defineConfig} require(vue/cli-service)module.exports defineConfig({devServer: {host: 0.0.0.0,port: 8088, // 启动端口号proxy: {/api: { // 请求接口中要替换的标识target: , // 代理地址&#xff0c;后…...

别再让QNetworkAccessManager卡住你的Qt界面了!手把手教你用异步请求优化用户体验

Qt网络请求优化&#xff1a;彻底解决界面卡顿的异步编程实践 在开发需要频繁获取网络数据的Qt应用时&#xff0c;很多开发者都遇到过这样的场景&#xff1a;点击按钮后界面突然冻结&#xff0c;滚动条变得卡顿&#xff0c;整个应用失去响应——直到网络请求完成才恢复正常。这种…...

当企业规模增长后,IT管理为什么越来越“失控”?

在企业早期&#xff0c;IT 管理往往是“够用就好”。 一套简单的工单工具、一份资产台账、几个人工流程&#xff0c;就足以支撑日常运转。但当企业规模逐渐扩大&#xff0c;员工数量增长、系统复杂度提升、业务节奏加快时&#xff0c;原本“还能用”的 IT 管理方式&#xff0c;…...

从零到实战:用QCustomPlot在QT中绘制动态曲线图(含OpenGL加速配置)

从零到实战&#xff1a;用QCustomPlot在QT中绘制动态曲线图&#xff08;含OpenGL加速配置&#xff09; 第一次接触QT绘图功能时&#xff0c;我被它的灵活性震撼到了——直到尝试绘制实时动态数据&#xff0c;才意识到性能优化的重要性。QCustomPlot这个轻量级库完美平衡了易用性…...

终极指南:免费开源fSpy相机匹配工具,3分钟实现2D图像到3D场景的完美转换

终极指南&#xff1a;免费开源fSpy相机匹配工具&#xff0c;3分钟实现2D图像到3D场景的完美转换 【免费下载链接】fSpy A cross platform app for quick and easy still image camera matching 项目地址: https://gitcode.com/gh_mirrors/fs/fSpy 还在为将2D照片转换为精…...

嵌入式开发调试宏与性能优化实战

1. 嵌入式开发调试宏的妙用在嵌入式开发中&#xff0c;调试是最耗时耗力的环节之一。每次修改代码后都需要重新烧录、运行、观察结果&#xff0c;这个过程往往要重复数十次。而合理使用编译器提供的调试宏&#xff0c;可以大幅提升调试效率。1.1 基础调试宏解析GCC编译器提供了…...

运动生物力学数据分析全流程dz: 运动学分析:Qualysis_Vicon动作捕捉数据处理(关节角度、角速度、重心轨迹等) 动力学分析:AMTI_Kistler测力台数据处理、逆动力学计算(关节力、力

运动生物力学数据分析全流程dz&#xff1a; 运动学分析&#xff1a;Qualysis/Vicon动作捕捉数据处理&#xff08;关节角度、角速度、重心轨迹等&#xff09; 动力学分析&#xff1a;AMTI/Kistler测力台数据处理、逆动力学计算&#xff08;关节力、力矩、功率&#xff09; 肌电信…...

阿里云省钱攻略:优惠券领取与使用一看就会

阿里云是阿里巴巴集团旗下云计算品牌&#xff0c;凭借其强大的计算能力和丰富的云服务产品&#xff0c;成为众多企业和个人开发者的首选。然而&#xff0c;如何在享受云服务的同时有效控制成本&#xff0c;成为大家关注的焦点。本文将详细介绍阿里云优惠券的领取与使用技巧&…...

Dan Koe: 如果你有多重兴趣,请不要浪费接下来的2-3年

本文整理自 Dan Koe 原文。Dan Koe 是 YouTube、X 等平台拥有数百万粉丝的个人成长领域创作者&#xff0c;以"一人公司"理念、深度内容创作和高效 AI 工作流著称。你是否曾因为无法只专注一件事而感到自责&#xff1f; 你学设计&#xff0c;又想学编程&#xff1b;读…...

基于卷积神经网络的忍者像素绘卷风格迁移:从原理到实战部署

基于卷积神经网络的忍者像素绘卷风格迁移&#xff1a;从原理到实战部署 1. 引言&#xff1a;当AI遇见像素艺术 想象一下&#xff0c;你手头有一张普通的照片&#xff0c;但希望它能变成复古游戏里的忍者像素风格——就像那些经典的街机游戏画面。这听起来像是需要专业美术师才…...

SpringBoot 3.2.0 项目里,如何优雅地引入 Flowable 7.1.0 工作流引擎?

SpringBoot 3.2.0 项目优雅集成 Flowable 7.1.0 工作流引擎实战指南 在微服务架构中引入工作流引擎&#xff0c;往往意味着需要在不破坏现有架构的前提下实现业务流程的自动化管理。本文将深入探讨如何在已具备MyBatis-Plus、Spring Cloud Alibaba等技术栈的SpringBoot 3.2.0项…...