这是我的剧本:
我有一个API,我通过PowerShell调用,有效载荷是一个JSON文件,这个API需要多次调用,每次,有效载荷略有不同(想想向列表中添加项目)。
下面是一个JSON模板的例子。
$JSONpaylod = @"
{
"Config":
{
"address": $variable1,
"authPassword": $variable2,
"authUsername": $variable3}
}
"@
因为它需要多次执行,所以我将使用For-Each循环,例如:
For-each($_.item in $list){
Do things, then call the API}
然而,我遇到的问题是,基于$list中的当前项,我想根据查找更新$variable1、$variable2等。
在PowerShell中有没有一种优雅的方法来做到这一点?一个想法是,在我的哈希表$list中,让它像这样:
Item, var1, var2, var3
1, 23, 1111, admin
2, 10, 1234, admin
但如果我们把它放在一个
$variable1 = $_.var1 etc.
有没有更好的办法,还是我想太多了?
1条答案
按热度按时间cczfrluj1#
我建议你使用CSV作为输入,并构造遵循Json有效负载结构的对象,然后从那里你可以使用
ConvertTo-Json
将它们转换为Json字符串。这样做的好处是ConvertTo-Json
处理必须在Json字符串中转义的字符的转义,即"
、\
、/
等。例如,下面的函数将在
"
插值的位置(第3行,位置20)失败。从JSON转换失败,出现错误:分析值后,遇到意外字符:B.路径“配置地址”,第3行,位置20。
这将工作: