Windows怎么用PowerShell处理JSON_Windows如何用ConvertFrom-Json解析JSON数据【方法】-1

如果您在Windows系统中需要将JSON格式的字符串转换为PowerShell可操作的对象,则可以使用内置命令ConvertFrom-Json。以下是实现此目标的多种方法:

一、使用ConvertFrom-Json解析本地JSON文件

该方法适用于已保存为.json扩展名的文本文件,PowerShell会读取文件内容并将其反序列化为自定义对象或哈希表。

1、打开PowerShell窗口(以管理员或普通用户身份均可)。

2、输入命令:Get-Content -Path “C:\data\config.json” | ConvertFrom-Json。

3、确认JSON文件路径正确且文件编码为UTF-8或UTF-8无BOM格式。

二、直接解析JSON字符串

当JSON数据以字符串形式存在于变量或脚本中时,可跳过文件读取步骤,直接传入ConvertFrom-Json进行解析。

1、定义JSON字符串变量:$jsonString = ‘{ “name”: “Alice”, “age”: 30, “city”: “Beijing” }’。

2、执行解析:$obj = $jsonString | ConvertFrom-Json。

3、访问属性:$obj.name 将返回 Alice。

三、处理嵌套JSON结构

对于包含数组或深层嵌套对象的JSON,ConvertFrom-Json会自动构建层级化的PSCustomObject,支持点号链式访问。

1、准备嵌套JSON字符串:$nested = ‘{ “user”: { “profile”: { “id”: 123, “tags”: [“admin”, “dev”] } } }’。

2、解析为对象:$data = $nested | ConvertFrom-Json。

3、提取嵌套值:$data.user.profile.id 返回 123;$data.user.profile.tags[0] 返回 admin。

四、解析含Unicode字符的JSON

当JSON中包含中文、日文等Unicode字符时,需确保输入流正确识别编码,避免乱码或解析失败。

1、使用Get-Content时显式指定编码:Get-Content -Path “C:\data\zh.json” -Encoding UTF8 | ConvertFrom-Json。

2、若从网络获取JSON(如Invoke-RestMethod),默认已处理UTF-8,无需额外设置。

3、验证结果是否含正确中文:$result.title 应输出原始JSON中的中文字段值。

五、错误处理与无效JSON检测

ConvertFrom-Json在遇到语法错误时会抛出终止异常,可通过try/catch捕获并提供友好提示。

1、封装解析逻辑:try { $valid = $badJson | ConvertFrom-Json } catch { Write-Host “JSON格式错误:$($_.Exception.Message)” -ForegroundColor Red }。

2、检查输入是否为空或仅含空白:if ([string]::IsNullOrWhiteSpace($inputJson)) { throw “输入JSON为空” }。

3、使用正则粗略校验是否含基本JSON结构:$inputJson -match ‘^\s*\{.*\}\s*$|\s*\[.*\]\s*$’。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。