【发布时间】:2021-07-09 17:01:06
【问题描述】:
我正在对DB2 Database 运行多个查询,并将信息存储在ArrayList 中。但是,返回的信息是DataTable,由于我是从哪里获得了查询DB2 Database的代码。
我正在做的是按计划查询结果,将信息推送到JSON 文件,jQuery DataTables 将读取该文件以填充结果。转换为JSON Object 有效,但是它缺少“数据”的父节点,因此jQuery 可以看到结果。
这是生成的数据,至少是一个样本:
[ {
"A": "1",
"B": "2",
"C": "3",
"D": "4"
} ]
但是,jQuery DataTables 期望 data 作为父节点来加载数据。
所以,我想做的是让 json 看起来像这样:
{
"data": [
{
"A": "1",
"B": "2",
"C": "3",
"D": "4"
}
]
}
这是我用来从DB2获取结果的函数:
Function Get-DB2Results {
param (
$db2
)
$script:dbcmd.CommandText = $db2
$rdr = $script:dbcmd.ExecuteReader()
$dt = [System.Data.DataTable]::New()
$dt.Load($rdr)
Return $dt
}
我将此信息存储在 ArrayList 中。我相信由于对象的混合,当我导出到JSON 时,数据没有正确转换:
Connect-DB2
foreach ($query in $SQLArray) {
$jsonFileTotals.add(((Get-DB2Results -db2 $query) | Select-Object * -ExcludeProperty ItemArray, Table, RowError, RowState, HasErrors))
$jsonFileTotals.add($blankLine)
}
Disconnect-DB2
@{ data = @( $jsonFileTotals.toArray() ) } | ConvertTo-Json | out-file \\SRV01\Data\totalsArray.txt -force
我相信因为有一个 ArrayList 和 DataTable 对象混合在一起,一个不正确的 JSON 文件:
"@{A=1; B=8; C=10; D=9}"
],
{
"A": "1",
"B": "2",
"C": "3",
"D": "4",
我是不是把问题复杂化了?感谢您的帮助。
【问题讨论】:
-
嗨,你能解释一下你是如何在 powershell 中连接到 db2 的吗?你用的是 powershell 7 还是 5?
-
@user3898488 至于
'explain me how you connected to db2 in powershell ? Do you use powershell 7 or 5?'PS版无所谓。连接到任何数据库都有特定的连接字符串标准。网上有很多例子/文章。 'PowerShell connect to db2',与SO post as well.,以及本文样本PS connect to DB2 -
对我来说不是那么容易;特别是如果您使用 V7 作为(至少在一段时间前)不太好的 db2 驱动程序,请参见此处:community.ibm.com/community/user/hybriddatamanagement/…
标签: arrays json powershell datatables db2