如何解决从Powershell中的JSON对象中删除属性
我有以下JSON,我想从数组(地址)下的JSON对象中删除街道。我正在尝试在Powershell中执行此操作
{
"Customer": [
{
"id": "123"
}
],"Nationality": [
{
"name": "US","id": "456"
}
],"address": [
{
"$type": "Home","name": "Houston","streets": [
{
"name": "Union","postalCode": "10",}
]
},{
"$type": "Office","name": "Hawai","streets": [
{
"name": "Rock","postalCode": "11",}
]
}
],"address": [
{
"$type": "Home1","streets": [
{
"name": "Union1","postalCode": "14",{
"$type": "Office1","name": "Hawaii1","streets": [
{
"name": "Rock1","postalCode": "15",}
我想从JSON对象中删除街道,这是我的powershell脚本,但是它不起作用!我正在尝试将JSON转换为对象,然后遍历属性以将其删除。
$FileContent = Get-Content -Path "Test.json" -Raw | ConvertFrom-Json
foreach ($content in $FileContent) {
#Write-Host $content.address
$content.address = $content.address | Select-Object * -ExcludeProperty streets
}
$FileContent | ConvertTo-Json -Depth 100 | Out-File "Test.json" -Force
解决方法
使用ConvertFrom-Json
时,它将自动为您将事物转换为对象。一旦它们成为对象,您就可以使用Select-Object
来指定要在管道中包含哪些属性,只需将$FileContent.address
(对象数组)设置为等于自身即可,不包括streets属性从数组中的每个对象开始。
$FileContent = Get-Content -Path "Test.json" -Raw | ConvertFrom-Json
$FileContent.address = $FileContent.address | Select-Object * -ExcludeProperty streets
$FileContent | ConvertTo-Json
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。