JSON是一种基于文本的流行格式,用于代表和传输基于JavaScript对象语法的结构化数据。 PowerShell中有两个CMDLET,可让您使用JSON数据格式:ConvertFrom-Json
和ConvertTo-Json
。让我们看一下如何使用PowerShell创建,读取或修改JSON对象并将其保存到文件中。
JSON格式的数据表示为钥匙:值对(允许属性嵌套)。假设您想将JSON数据写入文件。创建JSON结构化数据对象:
$obj = @{ Name = "Henry" Roles = @{ AD = "Admin" SQL = "Report" } "Company" = "woshub" }
现在将对象转换为JSON格式,然后将其保存到用一个文件.json扩大:
$json = $obj | ConvertTo-Json
$json | Set-Content -Path C:\PS\userroles.json
另请阅读:
您现在可以读取JSON文件:
$json = Get-Content -Path C:\PS\userroles.json -Raw | ConvertFrom-Json
列出所有JSON对象属性:
$json|fl
或者,您可以在JSON对象中获取特定属性的值:
$json.roles.sql
使用添加会员命令将新属性添加到JSON对象:
$json| Add-Member -MemberType NoteProperty -Name "Email" -Value "[email protected]"
使用以下命令在JSON对象中更改单个值并将其保存到文件:
$json.roles.sql="Admin"
$json|ConvertTo-Json| Set-Content -Path C:\PS\userroles.json
删除JSON对象属性:
$json.PSObject.Properties.Remove("Email")
通过使用Invoke-Webrequest PowerShell CMDLET,您可以访问JSON HTTP API以从外部Web服务(站点)获取数据。例如,列出Google DNS服务以JSON格式返回的记录:
$site="woshub.com"
$rawresp=Invoke-WebRequest "https://dns.google/resolve?name=$site&type=A"
$rawjson = ConvertFrom-Json -InputObject $rawresp.Content
$rawjson.answer.data