Powershell 5.1解析json中的特定键,并将其值作为换行文本写入一个新的.txt文件



在Powershell 5.1中,我如何解析下面的JSON,以便将所有xString值写入一个新文件>output.txt如下?

所需输出.txt:

ABC
DEF
GHI

Json解析:

{
"status": 0,
"result": {
"retrievedObjects": [
{
"someName": "loremIpsum",
"someBoolean": false,
"anotherBool": false,
"someString": "loremIpsum",
"xString": "ABC"
},
{
"childxStrings": [
"CustomLabel"
],
"someName": "loremIpsumABC",
"someBoolean": false,
"anotherBool": false,
"someString": "loremIpsumYZY",
"xString": "DEF"
},
{
"someName": "settings",
"someBoolean": false,
"anotherBool": false,
"someString": "settings",
"xString": "GHI"
}
],
"someNamespace": "",
"someSetting": false,
"someOtherBool": true
}
}

您可以使用Get-Content解析JSON文件,然后使用ConvertFrom-Json:将JSON转换为自定义对象

$json = Get-Content -Path .sample.json -Raw | ConvertFrom-Json

然后使用点表示法(如@AdminOfThings所建议的(访问嵌套的xString属性,并使用Out-File:输出到文本文件

$json.result.retrievedObjects.xString | Out-File -FilePath output.txt

您还可以查看PowerShell 3.0中的简化Foreach语法,以了解有关上述语法的更多信息。这也被称为成员枚举。

最新更新