json - 通过powershell更新sendgrid个性化json文件
问题描述
想通过 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 - 请参阅此 GitHub 问题。
以上产生:
{
"personalizations": [
{
"to": [
"@{email=abc1@xyz.com}",
"@{email=abc2@xyz.com}",
"@{email=abc3@xyz.com}"
]
}
]
}
推荐阅读
- python - 当日志在不同的进程中发出时,caplog 中的空消息
- sql - 扩展事件 connection_id 与 client_connection_id
- php - 如何输出当前登录的 WooCommerce 用户优惠券使用情况?
- inno-setup - 无需额外 Bin 文件的大型安装文件
- c++ - 使用 std::unique_ptr 导致无效指针错误有什么问题?
- laravel - 如何在laravel中将日期时间值与翻转倒计时vue js绑定?
- html - 表单验证器错误“无法在字符串 'clientUserName' 上创建属性 'validator'”
- php - 如何在 React Native 中连接 PHP 文件?
- mysql - 服务器没有连接在反应js中出现问题
- javascript - javascript中的嵌套哈希映射