我刚刚在powershell脚本中创建了一个方法 -
function Add-Entity() {
[CmdletBinding()]
param(
$TableName,
$PartitionKey,
$RowKey,
[String]$JsonString
)
$entity = New-Object -TypeName Microsoft.WindowsAzure.Storage.Table.DynamicTableEntity -ArgumentList $PartitionKey, $RowKey
$entity.Properties.Add("JsonStringProperty", $JsonString)
$result = $table.CloudTable.Execute([Microsoft.WindowsAzure.Storage.Table.TableOperation]::Insert($entity))
}
我希望将这个完整的jSon字符串作为参数传递 -
Add-Entity -TableName $myTableName -PartitionKey "ABC" -RowKey "XYZ" -JsonString {"TO":["abc@xyz.com","def@xyz.com"],"CC":["pqr@xyz.com"],"BCC":[]}
每次我尝试编译时,它都会给我一个错误 -
意外的令牌':表达式或陈述中的[“abc @ xyz”.com“'
答案 0 :(得分:1)
问题是JSON使用双引号来分隔键和值,Powershell也使用相同的字符(双引号)来表示字符串“wrap”。
您可以使用单引号来包装硬编码的输入json,如下所示:
'{"TO":["abc@xyz.com","def@xyz.com"],"CC":["pqr@xyz.com"],"BCC":[]}'
所以声明如下:
Add-Entity -TableName $myTableName -PartitionKey "ABC" -RowKey "XYZ" -JsonString '{"TO":["abc@xyz.com","def@xyz.com"],"CC":["pqr@xyz.com"],"BCC":[]}'