PowerShell如何遍历JSON文件中的键值对数据?
解决PowerShell遍历JSON键值对的方案
问题原因
你调用ConvertFrom-Json后默认返回的是PSCustomObject类型对象,JSON里的每一组键值对会被解析为该对象的属性和属性值,因此无法直接按集合迭代。
解决方法
方法1:兼容所有PowerShell版本(使用PSObject属性集合)
直接通过返回对象的PSObject.Properties获取所有属性列表,即可遍历键值对:
# 读取并解析JSON $json = Get-Content -Path C:\countries.json | ConvertFrom-Json # 遍历所有键值对 foreach ($prop in $json.PSObject.Properties) { $alpha2Code = $prop.Name # 获取键:alpha-2国家代码 $countryName = $prop.Value # 获取值:国家名称 # 此处编写你的业务处理逻辑 }
方法2:PowerShell 6+ 版本简便方案(直接转哈希表)
如果你使用的是PowerShell 6及以上版本,可以给ConvertFrom-Json加上-AsHashtable参数,直接将JSON解析为哈希表后遍历:
# 直接解析为哈希表 $countryMap = Get-Content -Path C:\countries.json | ConvertFrom-Json -AsHashtable # 遍历哈希表键值对 foreach ($item in $countryMap.GetEnumerator()) { $alpha2Code = $item.Key $countryName = $item.Value # 此处编写你的业务处理逻辑 }
内容的提问来源于stack exchange,提问作者Tom el Safadi
相关产品推荐
相关产品推荐

