gpt4 book ai didi

json - PowerShell -- 访问 JObject 中的 JArray

转载 作者:行者123 更新时间:2023-12-04 18:24:12 24 4
gpt4 key购买 nike

我有一个 Json 对象

 {
"ProjectDirectory": "C:\\Main",
"SiteName": "RemoteOrder",
"ParentPath": "/Areas//Views",
"VirtualDirectories": [
{
"Name": "Alerts",
"Path": "\\Areas\\RemoteOrder\\Views\\Alerts"
},
{
"Name": "Analytics",
"Path": "\\Areas\\RemoteOrder\\Views\\Analytics"
},
{
"Name": "Auth",
"Path": "\\Areas\\RemoteOrder\\Views\\Auth"
}
]
}

我创造的
$config = [Newtonsoft.Json.Linq.JObject]::Parse($file)

我可以访问诸如
$config["ProjectDirectory"]
$config["VirtualDirectories"]

但是我无法访问 VirtualDirectories JArray 中的元素

我确认过了
 $config["VirtualDirectories"][0].GetType() // JObject
$config["VirtualDirectories"].GetType() // JArray
$config // JObject

我试过了
$config["VirtualDirectories"][0]["Name"]
$config["VirtualDirectories"][0]["Path"]
$config["VirtualDirectories"][0][0]
$config["VirtualDirectories"][0].GetValue("Name")

当我尝试
 $config["VirtualDirectories"][0].ToString()

我得到
{
"Name": "Alerts",
"Path": "\\Areas\\RemoteOrder\\Views\\Alerts"
}

我真正想做的是访问它一个循环,但我似乎再次无法访问 JObject 元素

最佳答案

你很近。 $config["VirtualDirectories"][0]["Name"]会给你一个JValue包含文本。您只需要使用 Value属性从那里获取实际字符串。以下是您在 ForEach 中的做法环形:

$config = [Newtonsoft.Json.Linq.JObject]::Parse($file)

ForEach ($dir in $config["VirtualDirectories"])
{
$name = $dir["Name"].Value
$path = $dir["Path"].Value
...
}

关于json - PowerShell -- 访问 JObject 中的 JArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44653771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com