You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:52:43