通过 powershell 更新 sendgrid 个性化 json 文件
update sendgrid personalizations json file through powershell
想要通过 powershell 更新下面的 sendgrid 个性化 json 文件以添加一个电子邮件 ID。
发件人:-
{
"personalizations": [{
"to": [{"email": "abc1@xyz.com"}, {"email": "abc2@xyz.com"}]
}]
}
收件人:-
{
"personalizations": [{
"to": [{"email": "abc1@xyz.com"}, {"email": "abc2@xyz.com"}, {"email": "abc3@xyz.com"}]
}]
}
已尝试将其保存到文件并使用 Add-Member 但没有成功。
$EmailTemplateFilePath = "C:\EmailTemplate.json"
$body = [System.IO.File]::ReadAllText($EmailTemplateFilePath)
$body = ConvertFrom-Json -InputObject $body
# Parse the input JSON into a custom object ([pscustomobject]).
$obj = (@'
{
"personalizations": [{
"to": [{"email": "abc1@xyz.com"}, {"email": "abc2@xyz.com"}]
}]
}
'@ | ConvertFrom-Json)
# Append a new custom object with a new email address.
$obj.personalizations[0].to += [pscustomobject] @{ email = 'abc3@xyz.com' }
# Convert back to JSON.
$obj | ConvertTo-Json -Depth 3
请注意 -Depth 3
的不幸需求,以确保 parsed-from-JSON 对象正确转换回 JSON - 参见 this GitHub issue.
以上结果:
{
"personalizations": [
{
"to": [
"@{email=abc1@xyz.com}",
"@{email=abc2@xyz.com}",
"@{email=abc3@xyz.com}"
]
}
]
}
想要通过 powershell 更新下面的 sendgrid 个性化 json 文件以添加一个电子邮件 ID。
发件人:-
{
"personalizations": [{
"to": [{"email": "abc1@xyz.com"}, {"email": "abc2@xyz.com"}]
}]
}
收件人:-
{
"personalizations": [{
"to": [{"email": "abc1@xyz.com"}, {"email": "abc2@xyz.com"}, {"email": "abc3@xyz.com"}]
}]
}
已尝试将其保存到文件并使用 Add-Member 但没有成功。
$EmailTemplateFilePath = "C:\EmailTemplate.json"
$body = [System.IO.File]::ReadAllText($EmailTemplateFilePath)
$body = ConvertFrom-Json -InputObject $body
# Parse the input JSON into a custom object ([pscustomobject]).
$obj = (@'
{
"personalizations": [{
"to": [{"email": "abc1@xyz.com"}, {"email": "abc2@xyz.com"}]
}]
}
'@ | ConvertFrom-Json)
# Append a new custom object with a new email address.
$obj.personalizations[0].to += [pscustomobject] @{ email = 'abc3@xyz.com' }
# Convert back to JSON.
$obj | ConvertTo-Json -Depth 3
请注意 -Depth 3
的不幸需求,以确保 parsed-from-JSON 对象正确转换回 JSON - 参见 this GitHub issue.
以上结果:
{
"personalizations": [
{
"to": [
"@{email=abc1@xyz.com}",
"@{email=abc2@xyz.com}",
"@{email=abc3@xyz.com}"
]
}
]
}