PowerShell中JSON对象的增删改操作方法咨询
PowerShell JSON 增删改操作指南
先完成基础的读取操作(你已经掌握,这里再明确一遍):
# 读取JSON文件并转换为PowerShell对象 $jsonData = Get-Content -Path "your-file.json" -Raw | ConvertFrom-Json
以下是你需要的四个操作的具体实现:
1. 添加新的顶层对象(如Months)
直接为PSCustomObject添加新属性,两种写法都可行:
# 写法1:使用Add-Member(更严谨,适合需要指定属性类型的场景) $jsonData | Add-Member -MemberType NoteProperty -Name "Months" -Value @{ "1st" = "January" "2nd" = "February" "3rd" = "March" } # 写法2:直接赋值(更简洁) $jsonData.Months = @{ "1st" = "January" "2nd" = "February" }
2. 为现有嵌套对象添加键值对(如Numbers中添加"three":3)
针对嵌套的子对象直接添加属性即可:
# 写法1:使用Add-Member $jsonData.Numbers | Add-Member -MemberType NoteProperty -Name "three" -Value 3 # 写法2:直接赋值 $jsonData.Numbers.three = 3
3. 删除单个键值对
可以通过Remove-Member直接删除目标属性,或者用Select-Object保留需要的属性:
# 示例:删除Names对象中的"second"键值对 $jsonData.Names | Remove-Member -Name "second" # 另一种方式:通过Select-Object筛选保留的属性(适合批量保留场景) $jsonData.Names = $jsonData.Names | Select-Object -Property first
4. 删除整个顶层对象
直接移除顶层的属性即可:
# 示例:删除整个Numbers对象 $jsonData | Remove-Member -Name "Numbers"
最后,将修改后的对象转回JSON并写入文件:
# -Depth参数确保嵌套结构被正确序列化,根据你的实际嵌套层级调整数值 $jsonData | ConvertTo-Json -Depth 10 | Set-Content -Path "your-file.json"
内容的提问来源于stack exchange,提问作者am2
相关产品推荐
相关产品推荐

