Invoke-WebRequest 嵌套响应格式化
Invoke-WebRequest nested response formatting
第一次发帖,如有遗漏请见谅。我已经开始在 Powershell 中使用 WebRequests 来整理下面 JSON(见下文)的一些有用部分,最终目的是将其链接到 GUI。
我是运行以下
$response = Invoke-WebRequest 'https://directory.spineservices.nhs.uk/ORD/2-0-0/organisations/P81085'|convertFrom-Json |select -expand Organisation
完整的回复 return 编辑为 JSON 如下:
{
"Organisation": {
"Name": "YORK BRIDGE SURGERY",
"Date": [
{
"Type": "Operational",
"Start": "1974-04-01",
"End": "2018-05-02"
},
{
"Type": "Legal",
"Start": "1974-04-01",
"End": "2018-04-30"
}
],
"OrgId": {
"root": "2.16.840.1.113883.2.1.3.2.4.18.48",
"assigningAuthorityName": "HSCIC",
"extension": "P81085"
},
"Status": "Inactive",
"LastChangeDate": "2018-05-04",
"orgRecordClass": "RC1",
"GeoLoc": {
"Location": {
"AddrLn1": "5 JAMES STREET",
"Town": "MORECAMBE",
"County": "LANCASHIRE",
"PostCode": "LA4 5TE",
"Country": "ENGLAND"
}
在PS中显示为:
Date : {@{Type=Operational; Start=1974-04-01; End=2018-05-02}, @{Type=Legal; Start=1974-04-01; End=2018-04-30}}
OrgId : @{root=2.16.840.1.113883.2.1.3.2.4.18.48; assigningAuthorityName=HSCIC; extension=P81085}
Status : Inactive
LastChangeDate : 2018-05-04
orgRecordClass : RC1
GeoLoc : @{Location=}
Contacts : @{Contact=System.Object[]}
Roles : @{Role=System.Object[]}
Rels : @{Rel=System.Object[]}
我可以通过以下设置来分配变量和调用各个部分:
$name = $response.Name
$date = $response.date
哪个return:
YORK BRIDGE SURGERY
Type Start End
---- ----- ---
Operational 1974-04-01 2018-05-02
Legal 1974-04-01 2018-04-30
但是如果我设置:
$address = $response.geoloc
我得到以下信息
Location-------- @{AddrLn1=5 JAMES STREET; Town=MORECAMBE; County=LANCASHIRE; PostCode=LA4 5TE; Country=ENGLAND}
有没有人能建议一种方法,我可以 return 仅定位数据的各个部分?
理想情况下,我希望能够设置 $town = $response.town 并让它 return 在这个例子中只是 "Morecambe" 但是我显然遗漏了一些明显的东西
$response.Organisation.geoloc.Location
$response.Organisation.geoloc.Location.County
等等
已解决
对于将来可能遇到相同问题的任何人:
$addrLn1 = $response.geoloc.location.addrLn1
$addrLn2 = $response.geoloc.location.addrLn2
$town = $response.geoloc.location.town
允许我设置我需要的变量,返回我需要的个人数据。
回想起来,很明显,但我仍处于起步阶段,希望有一天这会对其他人有所帮助
第一次发帖,如有遗漏请见谅。我已经开始在 Powershell 中使用 WebRequests 来整理下面 JSON(见下文)的一些有用部分,最终目的是将其链接到 GUI。
我是运行以下
$response = Invoke-WebRequest 'https://directory.spineservices.nhs.uk/ORD/2-0-0/organisations/P81085'|convertFrom-Json |select -expand Organisation
完整的回复 return 编辑为 JSON 如下:
{
"Organisation": {
"Name": "YORK BRIDGE SURGERY",
"Date": [
{
"Type": "Operational",
"Start": "1974-04-01",
"End": "2018-05-02"
},
{
"Type": "Legal",
"Start": "1974-04-01",
"End": "2018-04-30"
}
],
"OrgId": {
"root": "2.16.840.1.113883.2.1.3.2.4.18.48",
"assigningAuthorityName": "HSCIC",
"extension": "P81085"
},
"Status": "Inactive",
"LastChangeDate": "2018-05-04",
"orgRecordClass": "RC1",
"GeoLoc": {
"Location": {
"AddrLn1": "5 JAMES STREET",
"Town": "MORECAMBE",
"County": "LANCASHIRE",
"PostCode": "LA4 5TE",
"Country": "ENGLAND"
}
在PS中显示为:
Date : {@{Type=Operational; Start=1974-04-01; End=2018-05-02}, @{Type=Legal; Start=1974-04-01; End=2018-04-30}}
OrgId : @{root=2.16.840.1.113883.2.1.3.2.4.18.48; assigningAuthorityName=HSCIC; extension=P81085}
Status : Inactive
LastChangeDate : 2018-05-04
orgRecordClass : RC1
GeoLoc : @{Location=}
Contacts : @{Contact=System.Object[]}
Roles : @{Role=System.Object[]}
Rels : @{Rel=System.Object[]}
我可以通过以下设置来分配变量和调用各个部分:
$name = $response.Name
$date = $response.date
哪个return:
YORK BRIDGE SURGERY
Type Start End
---- ----- ---
Operational 1974-04-01 2018-05-02
Legal 1974-04-01 2018-04-30
但是如果我设置:
$address = $response.geoloc
我得到以下信息
Location-------- @{AddrLn1=5 JAMES STREET; Town=MORECAMBE; County=LANCASHIRE; PostCode=LA4 5TE; Country=ENGLAND}
有没有人能建议一种方法,我可以 return 仅定位数据的各个部分? 理想情况下,我希望能够设置 $town = $response.town 并让它 return 在这个例子中只是 "Morecambe" 但是我显然遗漏了一些明显的东西
$response.Organisation.geoloc.Location
$response.Organisation.geoloc.Location.County
等等
已解决
对于将来可能遇到相同问题的任何人:
$addrLn1 = $response.geoloc.location.addrLn1
$addrLn2 = $response.geoloc.location.addrLn2
$town = $response.geoloc.location.town
允许我设置我需要的变量,返回我需要的个人数据。
回想起来,很明显,但我仍处于起步阶段,希望有一天这会对其他人有所帮助