以下是我的PowerShell脚本中的代码段,其中参数$book
和$author
的值未被替换。请提供一些技巧,我可以申请修复它或分享一些可以帮助我的代码。
$body = @{
version = '1.0'
inactive = 'false'
yml = { "Service1:\n book: $book\n author: $author\n "} | ConvertFrom-Json
} | ConvertTo-Json
$request = Invoke-WebRequest -UseBasicParsing -Method Post -Uri $uri -Body
$body -Headers $headers -ContentType $contentType
$response = ConvertFrom-Json -InputObject $request.Content
答案 0 :(得分:1)
你在这一行中发生了一些奇怪的事情
... yml = { "Service1:\n book: $book\n author: $author\n "} | ConvertFrom-Json } | ConvertTo-Json
因为它说“使用此主体执行script block,并尝试将脚本块转换为JSON”。
所以,如果你想在yml
字段中有一个JSON字符串,你有两个选择。
自己编写正确的JSON字符串:
@{...put the rest of your elements here...; yml = "{Service1:'', book:'$book', author: '$author'}"
首先填充hashtable,然后将其转换为JSON字符串:
@{...put the rest of your elements here...; yml = @{Service1=''; book='$book'; author='$author'} } | ConvertTo-Json