微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PowerShell - ScriptBlock 到可迭代类型

如何解决PowerShell - ScriptBlock 到可迭代类型

我们正在使用 Inovke-RestMethod 响应。作为响应的一部分,我们有一个数组:

$array = @(
    {
        id = "9916"
        title = "title9916"
    }
    {
        id = "9917"
        title = "title9917"
    }
)

我们注意到数组中的每一项都被视为 ScriptBlock:

PS C:\> $array | % { $_.GetType() }

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     ScriptBlock                              System.Object
True     True     ScriptBlock                              System.Object

如何让每一项都可迭代?

附注。当 ScriptBlock 被指定为:

$scriptblock = {
    id = "9916"
    title = "title9916"
}

我们可以通过以下方式转换为 HashTable:

PS C:\> $hash = ConvertFrom-StringData -StringData $scriptblock.ToString()

如果 ScriptBlock 被指定为:

$scriptblock = {
    id = "9916"
    title = "title9916"
    details = @{
        name = "name9916"
        count = 128
    }
}

在这种情况下 ConvertFrom-StringData 将不起作用。

附注。对于那些好奇的人:我们正在使用 ManageEngine ServiceDesk Plus v3

FindGameObjectsWithTag

响应是作为 PSCustomObject 给出的,我们只需要它的某个子集。这个子集可以随时间变化,它被定义为 XML 文件中的一个列表。根据该列表,我们应该处理我们的响应。我们认为实现这一目标的最佳方式是将 PSCustomObject 转换为 XML 并使用函数

  • 选择节点
  • 选择单节点
  • GetElementsByTagName

为了将 PSCustomObject 转换为 XML,我们使用了脚本的修改版本:

https://www.manageengine.com/products/service-desk/sdpod-v3-api/SDPOD-V3-API.html#get-request

在处理数组之前,它可以完美运行。

解决方法

正如评论中提到的,您的 allDates.add(m.group(1)); 不是有效的 JSON - 我可以想象返回的类型“scriptblock”可能会产生误导,但在这种情况下,它与 powershell 块有关脚本,而不是 javascript

我不确定它的内容发生了什么变化,但如果它是 JSON,它会是这样的:

$array

这是从中获取可用数据的方法:

$array = @"
    [{
        id: "9916",title: "title9916"
    },{
        id: "9917",title: "title9917"
    }]
"@

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?