我在一个名为test.txt的文件中有这个JSON
{
"local-dev": {
"client": {
"server-url": "http://localhost:3000"
},
"server": {
"renterEndpoint": {
"rejectUnauthorized": false,
"host": "blah.blah.com",
"port": 443,
"path": "/api/renter"
},
"homeownerEndpoint": {
"rejectUnauthorized": false,
"host": "blah.blah.com",
"port": 443,
"path": "/api/homeowner"
}
}
}
}当我运行这个PowerShell命令时:
Get-Content "test.txt" -Raw | ConvertFrom-Json我得到的输出不包括第二级以下的任何对象(即客户端和服务器对象没有属性)。
local-dev
---------
@{client=; server=}有谁有什么想法吗?
发布于 2014-11-25 08:07:37
你想要的数据就在那里。你只需要导航“节点”(不知道合适的术语)如果你把数据从你的文件返回到一个变量中并使用Get-Member,你就可以看到你正在寻找的东西。
PS C:\Users\Cameron> $json | Get-Member | Select-Object name
Name
----
Equals
GetHashCode
GetType
ToString
local-dev 让我们看看local-dev中的内容。请注意属性周围的引号。需要PowerShell将其作为字符串处理,否则将出现解析错误。
PS C:\Users\Cameron> $json."local-dev"
client server
------ ------
@{server-url=http://localhost:3000} @{renterEndpoint=; homeownerEndpoint=}让我们再走远一点
PS C:\Users\Cameron> $json."local-dev".server.renterEndpoint
rejectUnauthorized host port path
------------------ ---- ---- ----
False blah.blah.com 443 /api/renter 我相信还有其他方法可以提取您正在寻找的数据。我最近才开始关注这一点。要点是,如果你知道你在寻找什么,只需要使用对象的属性来获得你需要的东西。如果您不知道这些知识,Get-Member可以帮助您公开属性以显示数据结构。
https://stackoverflow.com/questions/27115880
复制相似问题