PowerShell使用ConvertFrom-Json后无法访问JSON嵌套对象属性
解决JSON嵌套属性访问无结果的问题
排查步骤
先明确解析后对象的实际结构,别凭预期盲目访问:
- 查看
$link的所有顶层属性,确认default_sku是否存在:$link | Get-Member - 查看完整嵌套结构(设置足够大的Depth确保显示所有层级):
$link | ConvertTo-Json -Depth 10
常见问题及解决方法
default_sku是数组而非单个对象
如果JSON里default_sku是数组格式(比如"default_sku": [ {...} ]),直接用.default_sku.display_price会无效,得用索引访问:$link.default_sku[0].display_price要是数组有多个元素,还可以循环遍历:
foreach ($sku in $link.default_sku) { $sku.display_price }属性名拼写/大小写不匹配
检查JSON源文件里的键名,比如是不是写成了defaultSku(驼峰式)而非default_sku,或者displayPrice而非display_price,按实际键名调整代码即可。default_sku本身为null/空值
如果$link.default_sku返回$null,说明这条数据里根本没有这个字段,或者字段值为空,得检查JSON源文件对应条目是否存在该属性。display_price在更深层级
可能display_price不是直接在default_sku下,而是嵌套在更下层的对象里(比如default_sku.pricing.display_price),根据ConvertTo-Json输出的结构调整访问路径。
内容的提问来源于stack exchange,提问作者Nealbo
相关产品推荐
相关产品推荐

