编辑修改json文件(PSCustomObject)

#$uname:用户
#$mails:需要绑定或删除的邮箱,如有多个邮箱,中间以,为分隔符,无需添加引号 

#######################脚本开始###########################
#定义json文件路径
$json_file = "D:operationsTEMPqruserlist.json"

#读取json文件并转换为PSCustomobject
$qr_obj = gc $json_file |ConvertFrom-Json 

#获取object中的所有Name
[array]$qr_obj_names = ($qr_obj | Get-Member -Type NoteProperty).Name

#添加新属性
$qr_obj | Add-Member -MemberType Noteproperty -Name $uname -Value $mails

#先将[array]其转换为为可修改的[System.Collections.ArrayList],然后可以插入、删除数组元素
[System.Collections.ArrayList]($qr_obj.$uname)=$qr_obj.$uname
$qr_obj.$uname.Insert($qr_obj.$uname.count,$mail) #插入一个新元素
$qr_obj.$uname.Remove($mail) #删除数组元素
$qr_obj.PSObject.properties.remove($uname) #删除Object某个属性


#将修改后的PSCustomObject重新写回json文件
Set-Content -Path $json_file -value (ConvertTo-Json $qr_obj)
原文地址:https://www.cnblogs.com/dreamer-fish/p/12033725.html