-
2020-09-23 00:30:01
0引言
今天应同学需求,写了个关于生成任意高维离散参数的组合数据。具体要求如下:
- 需要生成k个取值离散参数
- 每一个参数取值有限
为了更好的理解需求,给出一个比较常见的例子。由X1
和X2
两个参数,每个参数取值为0和1。需要生成的结果如下:
X1 X2 0 0 0 1 1 1 1 0 但是想产生任意维度,每个维度的取值空间不同的数据该怎么办?下面是我的解决方案和大家分享一下。
1、函数代码及其结果
1.1、固定取值空间的情况
为了找寻思路先来个情况比较特殊的。嘿嘿,不多解释直接上代码:
# 1、参数空间固定 # n是参数个数,C是每个参数的取值空间 fun <- function(n = 3, C = C){ Data <- c() p = length(C) for(i in 1:n){ Data <- cbind(Data, rep(C, each = p^(n-i), time = p^(i-1))) } Data }
接下来是这个代码使用案例:
案例1.1
## 参数空间 # 生成数据 > C <- c(0, 2, 3) > # 两个参数 > fun(n = 2, C = C) [,1] [,2] [1,] 0 0 [2,] 0 2 [3,] 0 3 [4,] 2 0 [5,] 2 2 [6,] 2 3 [7,] 3 0 [8,] 3 2 [9,] 3 3 > fun(n = 3, C = C) # 增加变量个数 [,1] [,2] [,3] [1,] 0 0 0 [2,] 0 0 2 [3,] 0 0 3 [4,] 0 2 0 [5,] 0 2 2 [6,] 0 2 3 [7,] 0 3 0 [8,] 0 3 2 [9,] 0 3 3 [10,] 2 0 0 [11,] 2 0 2 [12,] 2 0 3 [13,] 2 2 0 [14,] 2 2 2 [15,] 2 2 3 [16,] 2 3 0 [17,] 2 3 2 [18,] 2 3 3 [19,] 3 0 0 [20,] 3 0 2 [21,] 3 0 3 [22,] 3 2 0 [23,] 3 2 2 [24,] 3 2 3 [25,] 3 3 0 [26,] 3 3 2 [27,] 3 3 3
案例1.2
# 改变空间 > C <- c(0, 2, 3, 4) > fun(n = 2, C = C) [,1] [,2] [1,] 0 0 [2,] 0 2 [3,] 0 3 [4,] 0 4 [5,] 2 0 [6,] 2 2 [7,] 2 3 [8,] 2 4 [9,] 3 0 [10,] 3 2 [11,] 3 3 [12,] 3 4 [13,] 4 0 [14,] 4 2 [15,] 4 3 [16,] 4 4
1.2、每个参数空间长度不固定
依然直接给出函数:
fun2 <- function(n = 3, ...){ arg = list(...) p <- c() for(k in 1:n){ p[k] <- length(arg[[k]]) } Data <- c() for(i in 1:n){ Data <- cbind(Data, rep(arg[[i]], each = prod(p)/prod(p[1:i]), time = prod(p[1:i])/p[i])) } Data }
案例2.1
两个参数,空间长度不同。
# 生成数据 > C1 <- c(1, 2) > C2 <- c(3, 4, 5) > C3 <- c(6, 7) > # 函数调用 > fun2(n = 2, C1, C2) [,1] [,2] [1,] 1 3 [2,] 1 4 [3,] 1 5 [4,] 2 3 [5,] 2 4 [6,] 2 5
案例2.2
两个参数,空间长度相同,可以发现对于空间长度相同的参数也可以使用
fun2
来实现。# 注:数据使用案例2.1中的数据 > fun2(n = 2, C1, C3) [,1] [,2] [1,] 1 6 [2,] 1 7 [3,] 2 6 [4,] 2 7
案例2.3
三个参数,不同状态空间。
# 注:数据使用案例2.1中的数据 > fun2(n = 3, C1, C2, C3) [,1] [,2] [,3] [1,] 1 3 6 [2,] 1 3 7 [3,] 1 4 6 [4,] 1 4 7 [5,] 1 5 6 [6,] 1 5 7 [7,] 2 3 6 [8,] 2 3 7 [9,] 2 4 6 [10,] 2 4 7 [11,] 2 5 6 [12,] 2 5 7
2、总结
上述函数的核心思想在于对
rep
函数的each
和time
参数的灵活应用以及高中数列的知识。再写不同参数空间的数据生成函数fun2
时,还应该注意输入参数...
的使用使函数使用更加方便。
最后欢迎大家发现错误及时在评论区指出,若有更好的方法在评论区域给出一起学习探讨。更多相关内容 -
dbeaver mock data generator (数据库模拟数据生成)
2020-05-02 17:59:57在软件系统开发过程中,每当我们新建一个表时,需要填充有效的模拟数据进行自测,通常我们的做法是...刚好我发现了DBeaver ,它的Mock数据生成器(企业版才有Mock数据生成器)正好可以轻松地帮我们生成模拟测试数据。一、前言
在软件系统开发过程中,每当我们新建一个表时,需要填充有效的模拟数据进行自测,通常我们的做法是手动填充或者执行insert语句。而手动填充数据库是一个耗时且费力的过程,即使是执行insert语句,也不是那么方便,因为有时我们不仅仅生成几条或者几十条数据,而是几千上万条,同时,每一条数据又有着不同的类型实体,可能会非常复杂。正好我发现了DBeaver ,它的Mock数据生成器可以轻松地帮我们生成模拟测试数据(企业版才有Mock数据生成器)。
注意:建议在开发环境中使用Mock数据生成器生成模拟测试数据,不应该在生产环境中使用它。
二、功能介绍
以下是DBeaver Enterprise Mock数据生成器的功能,主要有五个方面:
一、适用于DBeaver支持的所有关系型数据库管理系统(DB2,MS SQL Server,MySQL,Oracle,PostgreSQL,SQLite等)。
二、生成与你的数据库模式匹配的数据。- 生成的数据与数据库列类型匹配。
- 支持所有基本数据类型。
- 支持约束(PK,FK,多列FK,唯一)。
三、支持20多个可配置的数据生成器(常量,随机数,序列,名称,域,地址,价格,基于正则表达式等)。
四、根据列特征自动将列与生成器关联。
五、保存或覆盖旧的数据库数据。三、操作说明
1、打开Mock生成器
2、Mock生成器界面介绍
-
Remove old data:移除旧数据,勾选后每次点击开始生成数据都会提示是否清除原有数据,谨慎操作。
-
Row count:每次操作生成的行数,即生成的数据条数。
-
Batch size 批量操作大小,即每次insert的数量,比如Row count的值为1000,Batch size的值为10,将会执行100次insert操作,一次操作插入10个数据。经测试设为1时生成模拟数据的速度最快。
-
Auto assign generators:自动分配生成模板。点击此按钮,将会根据数据表字段类型给相应字段自动分配一个模板,一般很少用到,因为打开Mock生成器时它已经为我们自动分配过了,可以把这个按钮当成一个重置所有字段模板来用。
-
Reset:把当前修改过的模板初始化。
3、选择字段分配模板
4、模板参数配置
Skip
见名知意,此为跳过的意思,也就是选择它时,生成数据过程将会忽略它。一般字段是自动增长、默认值之类的设置时就可以使用这个模板。
Boolean Constant
生成固定的布尔型,参数配置介绍如下:
- % of NuLLs
表示出现NULL的概率,值一般范围在0~100之间,超过100时基本上就是NULL值了,举个例子,当每次操作生成的行数(Row count)为10时,% of NuLLs的值为50时,那么这个字段生成的数据将会有50%左右是NULL,也就是这个字段10行数据中有5行左右的值是NULL的,有可能是4行,也有可能是6行。后面的每个模板中参数是% of NuLLs原理都相同,就不再重复介绍。 - Value
当值被勾选时,每次生成的都是true,不勾选则是false。
Boolean Random
随机生成布尔型,只有一个% of NuLLs配置。
Boolean Sequence
生成的布尔型序列,参数配置介绍如下:
- Initial
当Order的值是Constant时,如果勾选Initial,那么生成的都是false,不勾选Initial,生成的都是true;当Order的值是Alternately时,如果勾选Initial,那么第一个生成的是true,不勾选,第一个生成的是false。 - Alternately
有两个值,第一个值是Constant,等同于Boolean Constant模板,第二个值是Alternately,使用此值时,会交替生成true和false。
Data Constant
生成固定的日期
Data Random
生成随机日期,参数配置介绍如下:
- Start date
随机生成的开始日期,参数的配置格式为,DD-MM-YYYY,输出结果显示格式为YYYY-MM-DD。如果输入的开始日期大于结束日期,那么生成器会自动把开始日期判断为结束日期。 - End date
随机生成的结束日期,参数的配置格式为,DD-MM-YYYY,输出结果显示格式为YYYY-MM-DD。
Date Sequence
生成日期序列,参数配置介绍如下:
- Start date
随机生成的开始日期,参数的配置格式为,DD-MM-YYYY,输出结果显示格式为YYYY-MM-DD。 - Step
增长因子,单位为天,表示下一个生成的日期是在n天之后还是n天之前,取决于Reverse order。 - Reverse order
顺序,不勾选为升序,勾选为降序。
Numeric
数值类型,参数配置介绍如下:- Minimun
随机生成的最小数值。 - Maximun
随机生成的最大数值。 - Precision
随机生成的数值的精度,即有效数字。通常配合Scale进行使用。 - Scale
比例,也可理解为有多少位小数。一般值的设置范围在1~10,即1-10位小数。示例如下图。特别说明,也许是我还不了解又或者是生成器的原因,当设置了Precision和Scale之后,会导致和Minimun、Maximun冲突,Maximun会失效,就和下图一样。
如想生成负数,Minimun和Maximun同样设置成负数即可。暂时还无法生成负小数。
Coordinate
随机坐标生成,参数已自动配好,参数含义参考Numeric。
Numeric Price
随机价格生成,参数已自动配好,参数含义参考Numeric。
Numeric Constant
生成固定的数值。参数中,Value设置成什么就会生成什么。
Numeric Sequence
生成数值序列,参数配置介绍如下:
- Start value
随机生成的开始数值。 - Step
增长因子,开始数值加上或减去增长因子即是第二个生成的数值,以此类推,即等差数列,加减取决于Reverse order。 - Reverse order
顺序,不勾选为升序,勾选为降序。
Address
随机生成英国的地址,参数配置介绍如下:
- Lower Case:勾选则全部生成的地址为小写字母。
- Upper Case:勾选则全部生成的地址为大写字母。
两个都勾选取Upper Case配置。
City
随机生成世界上叫得上号的城市,参数配置介绍如下:
- Lower Case:勾选则全部生成的地址为小写字母。
- Upper Case:勾选则全部生成的地址为大写字母。
两个都勾选取Upper Case配置。
String Constant
生成固定的字符串,参数配置介绍如下:
- Value
要生成的字符串,字母、数字、汉字都可以。 - Lower Case
勾选后,当字符串中有字母时会把大写字母转为小写字母。 - Upper Case
勾选后,当字符串中有字母时会把小写字母转为大写字母。
Country
随机生成一个国家的名字,参数配置介绍如下:
- Lower Case:勾选则全部生成的国家名字为小写字母。
- Upper Case:勾选则全部生成的国家名字为大写字母。
两个都勾选取Upper Case配置。
Domain
随机生成一个域名,参数配置介绍如下:
- Lower Case:勾选则全部生成的域名为小写字母。
- Upper Case:勾选则全部生成的域名为大写字母。
两个都勾选取Upper Case配置。
Email
随机生成一个电子邮箱,参数配置介绍如下:- Gender
邮箱前部分的姓名前缀是属于男性还是女性,没影响可忽略。 - With Surname
邮箱前部分的是否加上姓名前缀,没影响可忽略。 - Numeric Suffix Size
邮箱前部分的后缀数字的个数,没影响可忽略。 - Lower Case
勾选后,生成的电子邮箱全是小写字母。 - Upper Case
勾选后,生成的电子邮箱全是大写字母。
Random text (Finnegan)
随机生成Finnegan这篇英文小说的一段话,基本上用不到,略。
Random text (Markov)
随机生成Markov算法的一些文本,基本上用不到,略。
Name
随机生成个人姓名,参数配置介绍如下:
- Gender
姓名是属于男性还是女性。 - With Surname
是否给个人名加上姓。 - Lower Case
勾选后,生成的个人姓名全是小写字母。 - Upper Case
勾选后,生成的个人姓名全是大写字母。
Price
随机生成带价格标签的字符串,参数配置介绍如下:
- country
哪个国家的价格,包括China、France、Germany、Italy、Japan、Russia、UK、USA。 - Minimum
随机生成的最小价格。 - Maximum
随机生成的最大价格。
Lower Case、Upper Case这两个配置无用。
Regex Random
根据正则表达式生成字符串。生成器已帮我们写好了9种。包括Credit Card(信用卡号码)、Email(电子邮箱)、Gender(性别)、HEX Color(十六进制颜色)、IP4、IP6、Phone Number(电话号码)、Postal Code(邮政编码)、String Price(价格),可根据自已的需求进行微调。
Template
带有生成器指令的模板,支持的指令如下:
${sequence(1,1)} ,自增序列指令,第一个参数为开始数,第二个参数为自增因子。
${name(ALL,false)},姓名生成指令,生成的都是外国英语人名,基本上用不到。
${regex(([0-9]{4}-){3}[0-9]{4})},正则表达式指令。
使用示例如下图:
Text
随机截取文本,参数配置介绍如下:
- Template
文本模板,随机生成的数据都是从该模板中截取。 - Min Length
从文本模板中截取的最小长度 - Max Length
从文本模板中截取的最大长度 - Lower Case
当勾选时,如果文本模板中有字母,那么将会把其中的大写字母转为小写字母。 - Upper Case
当勾选时,如果文本模板中有字母,那么将会把其中的小写字母转为大写字母。
UUID
随机生成UUID,参数配置介绍如下:
- Lower Case:勾选则全部生成的UUID为小写字母。
- Upper Case:勾选则全部生成的UUID为大写字母。
两个都勾选取Upper Case配置。
NULL
只生成NULL值。
5、生成带外键id的数据
第一步,首先新建一个外键。
第二步,设置外键,注意,要设置外键的表必须为空表,否则有可能因存在数据而设置外键失败。
第三步,在Mock生成器中选择外键。
第四步,生成模拟数据,然后把前面生成的外键约束删除。之所以删除外键约束是因为实际开发项目数据库很少使用外键约束,外键虽然可以增强数据库数据的完整性和一致性,但是有外键约束的话,插入字段会进行检查,影响效率。同时,外键约束对数据库有额外开销,当主键表被锁定时,会引发外键表也被锁,而且删除主键表的数据时,需先删除外键表的数据,修改外键表字段时,还需重建外键约束。本步骤仅仅只是用来生成关联的数据。
-
MySQL基础数据生成工具
2022-03-27 17:24:12这是一个自己写的用于生成基础MySQL数据的工具,仅供用于基础语法练习。该工具生成的所有数据均为虚拟,以上所有数据均为随机生成,需要者可自取。这是一个自己写的用于生成基础MySQL数据的工具,仅供用于基础语法练习。该工具生成的所有数据均为虚拟,以上所有数据均为随机生成,需要者可自取。
https://download.csdn.net/download/weixin_43387492/85044527
开发语言为:C++
后续将会将这个非常简单的源码上传到gitee
解压安装后根据操作输入你的数据库信息就行了,目前生成的表的名字是写死了,不想改了,就这样,应该也够用了
安装好后是一个狗的图标
-
DataScience:数据生成之在原始数据上添加小量噪声进而实现构造新数据
2021-12-12 21:31:00DataScience:数据生成之在原始数据上添加小量噪声进而实现构造新数据 目录 数据生成之在原始数据上添加小量噪声进而实现构造新数据 输出结果 设计思路 数据生成之在原始数据上添加小量噪声...DataScience:数据生成之在原始数据上添加小量噪声进而实现构造新数据
目录
相关文章
DataScience:数据生成之在原始数据上添加小量噪声进而实现构造新数据
DataScience:数据生成之在原始数据上添加小量噪声进而实现构造新数据实现数据生成之在原始数据上添加小量噪声进而实现构造新数据
输出结果
[6.8, 7.0, 7.2, 7.8, 8.0, 8.2, 8.4, 8.6, 8.8, 9.0] [7.2, 7.0, 7.0, 7.4, 8.2, 8.0, 8.0, 8.8, 8.8, 9.2]
[60, 65, 70, 75, 80, 85, 90, 95] [63.88, 65, 68.06, 71.12, 81.94, 83.06, 86.12, 96.94]
设计思路
import numpy as np lists_avg = np.mean(lists_temp) mid_float = round(lists_avg/20,3) # print(lists_avg,mid_float) lists_f = [-mid_float*2,-mid_float,-mid_float, 0,0,0, mid_float,mid_float,2*mid_float,3*mid_float] lists_float = [round(a,2) for a in lists_f] # print(lists_float) one_f = random.sample(lists_float, 1)[0] # print(one_f)
-
仿真数据生成工具以及现有的仿真数据集
2021-11-26 17:25:49TartanAir 是一个用AirSim生成的仿真SLAM数据集,可以用于视觉SLAM。 数据集提供:双目 RGB 图像,深度图像,分割,光流,相机位姿和 LiDAR 点云。 论文:TartanAir: A Dataset to Push the Limits of Visual SLAM ... -
网狐DevTools数据生成器
2019-08-29 11:52:50网狐DevTools数据生成器 XOR加密解密、MD5加密、UTF8编码解码、机器码生成。 链接:https://pan.baidu.com/s/1Mvoabb7yGxWUpXy3LrDr0g 提取码:wu1t -
航测无人机las点云数据生成DEM
2021-09-04 13:06:26“ 做航测的同僚都知道,Pix4D或者CC(ContextCapture)都可以生成DSM,往往高程...航测类软件大多可以生成点云数据,如Pix4D,PhotoScan,CC等,此次点云数据为citymapper2相片基于CC生产的Las点云。 2 筛选地面点 筛. -
Excel:把数据生成曲线图
2021-12-17 21:37:35要生成曲线图的数据 点击1,出现下图 点击2生成折线图 这生成的图是折线图,要改为曲线图,点击右键 折线图找到曲线图,点击,生成如下 -
点云数据生成DEM,并导出三维模型
2021-08-22 14:58:32点云数据生成DEM,并导出三维模型 -
Excel表格数据生成ECharts图表
2019-03-25 23:48:34然后就做了这么个小东西,通过html页面,选择一个有数据(固定格式)的Excel文件,根据Excel里面的数据,生成对应的ECharts图表,如折线图、柱状图。 效果如下: 其实大家仔细一看就知道Excel的数据和转换后的... -
VUE+ElementUI生成Excel模板 导入数据生成表格(自适应)
2020-11-21 14:10:40VUE+ElementUI生成Excel模板 导入数据生成表格(自适应) 最近项目需求,需要根据条件查询对应数据的参数(每条数据的参数名称和个数都不一样) ,生成Excel表格模板,再通过Excel模板填写数据上传Excel,展示在页面上... -
Python 将列表数据生成折线图(Pandas使用)
2022-03-23 09:48:44本文提供python将列表数据画图的样例代码。主要是给自己的记录,顺便分享一下。主要使用到的库是:pandas、matplotlib。 -
GAN应用之数据生成,无监督深度学习新方法(3)
2018-09-21 17:45:14DCGAN是第一个用全卷积网络做数据生成的,下面是它的基本结构和生成的数据。 输入100维的噪声,输出64*64的图像,从mnist的训练结果来看,还不错。笔者也用DCGAN生成过嘴唇表情数据,也是可用的。 但是它的问题是... -
【ArcGIS风暴】ArcGIS+CASS点云(.las)数据生成等高线方法案例精解
2021-04-19 16:25:09ArcGIS+CASS点云(.las)数据生成等高线方法案例精解 ArcGIS平台上点云(.las)数据生成等高线方法案例精解 文章目录一、LAS转多点二、多部件要素转单部件点要素三、生成CASS文本格式dat四、CASS生成等高线 一、LAS... -
Arcgis利用dem数据生成等高线
2020-02-27 23:22:23Arcgis利用dem数据生成等高线 如果你在网上查,如何利用dem生成等高线,那么所有教程基本都是一样的,告诉你在工作箱中找到等值线工具,填入参数即可生成等高线。贴几个网上的链接教程: arcgis中DEM如何生成等高线 ... -
【ArcGIS风暴】ArcGIS平台上点云(.las)数据生成等高线方法案例精解
2021-04-18 17:11:46las是点云数据常见的存储格式,摄影测量和激光雷达数据均采用此格式,点云数据常用来生成等高线,地籍测量,土方量计算等。本文讲解在ArcGIS平台上生成等高线,等高线平滑,并转换为dwg格式供CASS使用。 文章目录一... -
Mock模拟数据生成接口
2018-08-17 22:43:41Easy Mock是一个可视化,并且能快速生成模拟数据的服务。 Mock解决的问题 开发时,后端还没完成数据输出,前端只好写静态模拟数据。 数据太长了,将数据写在js文件里,完成后挨个改url。 某些逻辑复杂的代码,... -
测试数据生成器汇总
2017-10-13 11:40:42DataFactory是一种强大的数据产生器,拥有图形界面,它允许开发人员和QA很容易产生百万行有意义的正确的测试数据库,该工具支持DB2、Oracle、Sybase、SQL...JMeter是apache开源的性能测试工具,可以用来作为生成测试数据的 -
Sqlserver中把表中的数据生成insert语句
2018-08-24 19:00:54len(@sqlstr2)-1)+') '+left(@sqlstr1,len(@sqlstr1)-3)+')'' from '+@tablename +' where '+@where -- print @sqlstr exec( @sqlstr) set nocount off end 需要拿走的数据表 执行存储过程 EXEC proc_insert 'D_... -
ArcGIS中利用DEM数据生成地形图既视感的等高线;利用掩膜进行等高线注记;DEM的可视化表达总结
2021-11-26 21:46:07三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化2.三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化总结 前言 最近老师布置作业:DEM的... -
纯前端生成pdf----js动态获取后台数据生成pdf
2020-04-28 15:06:27纯前端导出pdf js动态数据渲染pdf 动态数据生成pdf 动态数据生成页面pdf js动态生成页面pdf 预览pdf -
Arcgis由栅格数据生成等值线shp文件
2020-05-28 15:47:30首先在arcgis中导入栅格数据 3DAnalyst工具—>栅格表面—>等值线 在弹出的对话框中输入栅格数据、设置等高距、基准高程、变换系数等等。 导入的栅格数据: 生成的等值线: -
Oracle PL/SQL 大数据量数据生成器
2017-05-12 09:22:50数据生成器允许你创建演示和测试数据。 -
vue根据后台传递的json数据生成动态配置页面(一)动态组件
2020-03-04 14:16:13如图1.1,目前只是大概做了一个静态数据传递,先做页面展示。 展示模块负责根据json数据展示页面。如图1.2,根据动态组件和传递json数据展示页面,页面主要有动态表单、动态按钮、动态列表、动态弹窗等。 ... -
java千万级别数据生成文件思路和优化
2016-03-06 18:07:57一年前写过一个百万级别数据库数据生成配置xml文件的程序,程序目的是用来把数据库里面的数据生成xml文件.程序可以配置多少文件生成到一个文件中去. 程序刚开始设计的时候说的是最多百万级别数据,最多50W数据... -
测试数据生成工具
2016-05-04 16:48:10测试数据生成工具 备忘几个测试数据生成工具: DataFactory是一种强大的数据产生器,拥有图形界面,它允许开发人员和QA很容易产生百万行有意义的正确的测试数据库,该工具支持DB2、Oracle、Sybase、SQL Server... -
MS SQLServer表数据生成Insert语句
2016-09-17 12:34:57关键词:SQLServer、表数据、生成Insert语句反馈意见请联系:lijunyi@139.com简介数据库数据生成insert(MSSQL版),可将表中的数据生成insert或者update的sql脚本。比如您维护两个数据库,其中一个数据库中增加的... -
ArcGIS Pro如何实现已入库二维数据生成三维模型
2019-10-27 15:16:24ARCGIS Pro如何实现已入库二维数据生成三维模型二维要素是否带高程Z判断如何判断要素是否带有高程Z信息 :二维要素进行三维的展示二维要素生成三维模型 常规状态下已入库的数据一般是二维的点面线数据,有时需要进行... -
Oracle大数据量数据生成器Data Generator的使用
2014-09-03 10:11:30Automation of software Oracle大数据量数据生成器Data Generator的使用 首先测试环境建立:dept表 CREATETABLE dept ( deptno N -
通用JSON数据生成器
2016-03-06 22:56:54在一个项目中通常会有很多数据是需要通过封装成JSON格式进行传输的,但是在封装JSON的过程中,不仅繁琐,而且也不美观,于是构建了一个JSON数据生成器,用户只需要定义好要传输数据类,然后通过调用封装类即可得到...