首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >适用于jQuery DataTables的PowerShell DB2 DataTable行到JSON文件

适用于jQuery DataTables的PowerShell DB2 DataTable行到JSON文件
EN

Stack Overflow用户
提问于 2021-04-15 00:03:05
回答 1查看 48关注 0票数 0

我正在对一个DB2 Database运行多个查询,并将信息存储在ArrayList中。但是,由于我从哪里获得了查询DB2 Database的代码,所以返回的信息是DataTable

我正在做的是按计划查询结果,将信息推送到jQuery DataTables将读取以填充结果的JSON文件。转换为JSON Object是可行的,但是它缺少'data‘的父节点,以便jQuery可以看到结果。

下面是生成的数据,至少是一个示例:

代码语言:javascript
运行
复制
[ {
    "A":  "1",
    "B":  "2",
    "C":  "3",
    "D":  "4"
} ]

但是,jQuery DataTables期望数据作为父节点来加载数据。所以,我要做的就是让json看起来像这样:

代码语言:javascript
运行
复制
{
    "data": [
        {
            "A":  "1",
            "B":  "2",
            "C":  "3",
            "D":  "4"
        }
        ]
}

这是我用来从DB2获取结果的函数

代码语言:javascript
运行
复制
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时,数据不能正确转换

代码语言:javascript
运行
复制
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

我相信是因为有一个混合的ArrayListDataTable对象,一个不正确的JSON文件:

代码语言:javascript
运行
复制
             "@{A=1; B=8; C=10; D=9}"
         ],
         {
             "A":  "1",
             "B":  "2",
             "C":  "3",
             "D":  "4",

我是不是把问题复杂化了?我很感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-04-15 05:24:03

这应该可以很好地工作。你可以检查我的评论,并给我一个提示如何在powershell中连接到db2?

代码语言:javascript
运行
复制
$MyArrayList = New-Object -TypeName "System.Collections.ArrayList"

$MyArrayList.Add(5)
$MyArrayList.Add(5)
$MyArrayList.Add(5)
$MyArrayList.Add(5)
$MyArrayList.Add(4)

$MyArrayList | ConvertTo-Json

$myObject = [PSCustomObject]@{
    data = $MyArrayList
}

$myObject | ConvertTo-Json

#or even lighter
$myHashTable= @{}
$myHashTable.data = $MyArrayList
$myHashTable | ConvertTo-Json
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67095227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档