前言:
如今同学们对“mysql输出数组”都比较讲究,各位老铁们都需要分析一些“mysql输出数组”的相关内容。那么小编在网络上网罗了一些对于“mysql输出数组””的相关文章,希望小伙伴们能喜欢,各位老铁们快快来学习一下吧!概述
JSON output(JSON输出)此步骤允许根据输入步骤值生成Json块。输出json将作为java脚本数组或java脚本对象,这取决于步骤设置。
选项
JSON output(JSON输出)步骤有以下选项:
Step name(步骤名称):在画布上指定JSON output(JSON输出)步骤的唯一名称。您可以自定义名称或将其保留为默认名称。
一般选项卡
一般选项卡允许指定步骤操作的类型,输出json结构,步骤输出文件。此文件将用于转储所有生成的json。
Operation(操作):指定步骤操作类型。目前可提供3种操作方式:1.Output value:只将输出json作为步进输出字段传递,不转储到输出文件;2.写入到文件:只写入到文件,不传递到输出字段;3.Output value and write to file:转储到文件并将生成的json作为步骤输出文件传递。
Json block name(Json条目名称):这个值将用作json块的名称。可以是空字符串,这将影响输出json结构。
Nr. rows in a block(一个数据条目的数据行):json块键值对的数目。注意,1是一个特殊值,在1的情况下,每个输出将作为一个对象生成。
Output value(输出值):此值将用作步骤的输出字段。将根据步骤设置包含生成的json输出块。
Compatibility mode(兼容模式):此复选框处理与以前水壶版本的兼容性配置(如果选中PDI 4.3.0之前,则选中PDI 4.3.0之后)。
兼容模式是从PDI 4.3.0版本开始引入的。这是为了处理json结构生成的变化。默认情况下使用最新的fixed模式。要启用兼容模式,请选中“兼容模式”复选框。
例如,有一个步骤带有2个字段的行输入数据:字段为:“name“,并带有字符串值的“item“和字段为:“value“,并带有数值25。我们有4行带有“name”和“value”的数据。
假设Json输出步骤有一下设置组合:
Json条目名称值为:data
一个数据条目的数据行的值为:3
兼容模式:默认,不选中
Josn输出步骤将生成下面的输出内容:
{
"data" : [ {
"name" : "item",
"value" : 25
}, {
"name" : "item",
"value" : 25
}, {
"name" : "item",
"value" : 25
} ]
}{
"data" : [ {
"name" : "item",
"value" : 25
} ]
}
所以我们有两个对象,第一个对象有一个'data' (Json块名)数组包含3个Json对象(因为块中的行数是3)和第二个对象数组只包含一个对象。3+1实际上是处理了4行。
如果兼容性模式是启用的,步骤有如下设置组合:
Json条目名称值为:data
一个数据条目的数据行的值为:3
兼容模式:选中
Josn输出步骤将生成下面的输出内容:
{"data":[{"name":"item"},{"value":25},{"name":"item"},{"value":25},{"name":"item"},{"value":25}]}
{"data":[{"name":"item"},{"value":25}]}
优雅的格式不会影响兼容性模式。我们有两个json输出对象。第一个对象捕获前3个输入行,第二个对象只捕获一行。这是因为一个块中的行数是3。无论如何,它可以被认为是不正确的结果,因为数组的第一个输出对象的实际对象计数为6。默认情况下兼容性模式是禁用的。
如果‘Json条目名称’是一个空字符串(默认情况下它有‘data’值)-兼容模式将使用空字符串块名。正常-如果兼容性模式没有检查,步骤输出将是:
[ {
"name" : "item",
"value" : 25
}, {
"name" : "item",
"value" : 25
}, {
"name" : "item",
"value" : 25
} ][ {
"name" : "item",
"value" : 25
} ]
我们有两个json数组,第一个数组包含3项,第二个数组包含1项。
另一种特殊情况是当' 一个数据条目的数据行' 设置为:1。
如果使用空Json条目名称输出将会是:
{
"name" : "item",
"value" : 25
}{
"name" : "item",
"value" : 25
}{
"name" : "item",
"value" : 25
}{
"name" : "item",
"value" : 25
}
我们将只有4个简单的json对象,它们将作为4个步输出行输出。
如果Json条目名称被定义-输出结构将看起来像:
{
"data" : {
"name" : "item",
"value" : 25
}
}{
"data" : {
"name" : "item",
"value" : 25
}
}{
"data" : {
"name" : "item",
"value" : 25
}
}{
"data" : {
"name" : "item",
"value" : 25
}
}
这是相同的4个输出对象,定义了Json条目名称。
如果' 一个数据条目的数据行'小于1输出将作为一个对象:
{
"data" : [ {
"name" : "item",
"value" : 25
}, {
"name" : "item",
"value" : 25
}, {
"name" : "item",
"value" : 25
}, {
"name" : "item",
"value" : 25
} ]
}
这将是一个对象(一个输出行),其数据块包含4个对象的json数组(正如我们有4个输入数据行)。请注意-当 '一个数据条目的数据行'为0,步骤将构建输出对象,直到输入数据可用。当输入完成时,一个大的输出对象将被传递到输出行。对于较大量的输入数据,它会影响内存的使用。
Filename(文件名):输出文件的完整路径
Append(追加方式):如果没有选中,将在每一步运行时创建新文件。如果指定名称的文件已经存在,它将被替换为一个新的。如果勾选,新的json输出将被追加到现有文件的末尾。或者如果现有的文件不存在,它将像前面的情况一样被创建。
Create Parent folder(创建父文件夹):通常文件名称包含一些路径文件夹作为父文件夹。如果父文件夹不存在并且选中此选项,父文件夹将作为一个新文件夹创建。否则,文件找不到,步骤将失败。
Do not open create at start(启动时不创建文件):如果没有选中,文件(在某些情况下是父文件夹)将在转换初始化期间被创建/打开并写入。如果选中,文件和父文件夹创建将在步骤将获得任何输入数据之后。
Extension(扩展名):输出文件扩展名。默认值为“js”。
Encoding(编码):输出文件编码。
Pass output to servlet(发送结果到 servlet):启用此选项以通过web服务返回数据,而不是写入文件(请参阅web服务上的PDI数据)
Include date in filename?(添加日期到文件名):如果选中此项,输出文件名将包含文件名值+当前日期。这可能有助于生成唯一的输出文件。
Include time in filename(添加时间到文件名):如果选中此项,输出文件名将包含文件创建时间。与“添加日期到文件名”选项相同。
Show filename(s) (显示文件名):是否可用于测试完整的输出文件路径。
Add file to result filenames?(添加文件到结果文件中):如果选中此项,则创建的输出文件路径将可从步骤结果中访问。
字段选项卡
此选项卡用于将输入步骤字段映射到输出json值。
Fieldname(字段名):输入步骤字段名。使用“获取字段”按钮来发现可用的输入字段。
Element name(元素名称):Json元素名作为键。例如“A”:“B”- A是一个元素名,B是这个元素名映射的实际输入值。
示例
示例采用代码表与用户表,代码表里存放用户性别代码跟名称,用户里面存放用户跟用户的性别代码。为了演示,sql语句很简化,不可以作为实际业务场景,其表sql语句如下。
/*用户表 */
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`username` varchar(20) NOT NULL,
`truename` varchar(50) DEFAULT NULL,
`gender` varchar(50) DEFAULT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `user`(`username`,`truename`,`gender`) values ('hanmeimei','韩梅梅','女');
insert into `user`(`username`,`truename`,`gender`) values ('lisi','李四','男');
insert into `user`(`username`,`truename`,`gender`) values ('zhangsan','张三','男');
演示效果是把用户表内容生成一个Json格式的文件。
1.建立数据库连接对象
示例采用mysql数据库作为示例,首先下载mysql驱动,然后放在在文件夹\data-integration\lib下。然后重启Spoon。如果已经添加过mysql驱动,则可忽略此步骤。
切换至主对象树,双击DB连接。
然后选项连接类型为mysql,并维护相关的链接信息。
连接信息维护完之后,点击测试,测试连接是否成功。
2.获取用户表User数据作为数据输入源。
添加一个表输入步骤,数据库连接上面创建的DB连接名称demo,然后从获取SQL查询语句中选择表User,即可。
最后点击预览,预览结果数据。
3.添加JSON输出步骤,并配置JSON输出选项内容
添加一个输出中的JSON输出步骤。并建立从表输入到JSON输出的一个节点连接。
JSON输出步骤上配置操作为:写到文件;一个数据条目的数据行数:3;文件名:F:\\user;扩展名:json。
然后切换至字段选项卡,点击获取字段,并点击确定。
最后保存并点击运行。
最后查看用户表数据。
标签: #mysql输出数组