ConvertFrom Json PowerShell Cmdlet未解析整个Json对象

ConvertFrom Json PowerShell Cmdlet未解析整个Json对象,json,powershell,Json,Powershell,我在一个名为test.txt的文件中有这个JSON { "local-dev": { "client": { "server-url": "http://localhost:3000" }, "server": { "renterEndpoint": { "rejectUnauthorized": false, "host": "blah.blah.com", "port": 443,

我在一个名为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
我得到的输出不包括第二级下的任何对象(即客户端和服务器对象没有属性)


有人有什么想法吗?

你想要的数据就在那里。您只需浏览“节点”(不知道正确的术语) 如果您将文件中的数据返回到一个变量中,并使用
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
可以帮助您公开属性以显示数据结构

谢谢你,马特!“只是数据是否在那里还不是很明显。”德莫特罗表示同意。好像它一定在某个地方:)回答得好。。仅供参考,我自己也被咬伤了,我用一个技巧来证实这类事情
converttojson$Json-Depth 10
,它将显示正确的完整结构(Depth 10,可以使用更高的数字),格式很好。
PS C:\Users\Cameron> $json."local-dev".server.renterEndpoint

    rejectUnauthorized host                                     port path                  
    ------------------ ----                                     ---- ----                  
                 False blah.blah.com                             443 /api/renter