PowerShell无法获得JSON键 /值
您好,我有一个JSON文件:
{
"supports": {},
"dependencies": {
"AST.NxTestware.main": "1.1.0",
"otherPackagenName": "7.7.7"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile78": {}
}
}
我正在尝试编写一个.ps1 PowerShell脚本,该脚本将在“依赖关系”下查看每个项目,检查名称是否匹配,如果是这样,请检索版本号。
但是我在“依赖项”中的每个项目中都遇到了麻烦,并且无法检索
我的PS1的包装名称字符串或版本编号,如下所示:
$targetName = "otherPackagenName"
Write-Host "Trying to get version # of $targetName if it exists inside project.json"
# get json file contents
$json = Get-Content .\project.json | ConvertFrom-Json
# retrieve dependencies
$dependencies = $json.dependencies
Write-Host "dependencies = $dependencies"
# iterate through each dependency
foreach ($dep in $dependencies) {
Write-Host "dep = $dep"
# try to get dependency name (attempt1)
$depName1 = $dep[0]
Write-Host "depName1 = $depName1"
# try to get dependency name (attempt2)
$depName2 = $dep.Name
Write-Host "depName2 = $depName2"
if($depName1 -eq $targetName) {
write-host "Found it! now get version number"
} else {
write-host "Did not find our package"
}
}
输出显示它正确检索JSON键/值对,但我无法弄清楚如何检索包装名称和版本编号,当我尝试过的每件事时,只需返回空白:
Trying to get version # of otherPackagenName if it exists inside project.json
dependencies = @{AST.NxTestware.main=1.1.0; otherPackagenName=7.7.7}
dep = @{AST.NxTestware.main=1.1.0; otherPackagenName=7.7.7}
depName1 = @{AST.NxTestware.main=1.1.0; otherPackagenName=7.7.7}
depName2 =
Did not find our package
我的依赖项即将通过:
@{AST.NxTestware.main=1.1.0; otherPackagenName=7.7.7}
我如何迭代此对象?
如何检索键(' ast.nxtestware.main')and value('1.1.0')适用于每个依赖关系?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我猜您正在寻找这个:
您可以通过访问对象的 和属性 value 。 microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about/about/about_intrinsic_members?view=Powershell-7.2#psobject“ rel =” rel =“ nofollow noreferrer” ,从那里您可以参考
属性
属性 。I'm guessing you're looking for this:
You can get an object's property Name and property Value by accessing the object's
PSObject
member, from there you can reference theProperties
property of each object.