如何在powershell中解析json响应
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在powershell中解析json响应相关的知识,希望对你有一定的参考价值。
设法获得JSON数据
$R= Invoke-WebRequest -Uri $url -Headers $headers -ContentType "application/json" -Method Get -UseBasicParsing
$x = $R.Content | Out-String | ConvertFrom-Json
现在我有一个像这样的JSON文件:
{
"id": 1000,
"name_with_namespace": "myProjectName1",
},
{
"id": 1001,
"name_with_namespace": "myProjectName2",
},
{
"id": 1002,
"name_with_namespace": "myProjectName3",
}
现在我需要提取所有qazxsw poi和qazxsw poi的发生地点qazxsw poi
我该如何一次性完成?
我试过这个:
"name_with_namespace"
但我得到了这个:
"id"
我知道问题出在$ x.id上,我怎样才能获得正确的价值而不是一切?
我的预期输出是
"name_with_namespace" = "myProjectName.*"
在定义循环时,您正在向下钻取一个级别。只需迭代foreach ($name in $x.name_with_namespace) {
if ( $name -match ".*myProjectName.*" ) {
write-host "$name - $x.id"
}
}
然后检查循环内的特定属性。
myProjectName1 1000 1001 1002
myProjectName2 1000 1001 1002
myProjectName3 1000 1001 1002
编辑:在侧面说明,你可以简化你的myProjectName1 1000
myProjectName2 1001
myProjectName3 1002
只是$x
,它也会工作,也可能更快。
所以基本上你已经获得了带有父节点的json,所以我没有覆盖那部分。假设您已经拥有父节点,那么您可以直接执行此操作:
foreach ($name in $x) {
if ( $name.name_with_namespace -match ".*myProjectName.*" ) {
write-host "$($name.name_with_namespace) - $($name.id)"
}
}
输出:
-match
您可以随意解析。那部分没有问题。确保您的json是从restAPI接收的结构。使用点方法,您可以进入任何级别,您也可以使用"myProjectName"
直接选择它们。
希望能帮助到你。
$a=@"
{"ParentNode":[
{"id":1000,"name_with_namespace":"myProjectName"},
{"id":1001,"name_with_namespace":"myProjectName2"},
{"id":1002,"name_with_namespace":"myProjectName3"}
]}
"@
($a | ConvertFrom-Json).ParentNode
有一些id name_with_namespace
-- -------------------
1000 myProjectName
1001 myProjectName2
1002 myProjectName3
。问题是select-object
将JSON数组包装在一个数组中,然后将整个数组作为一个项目传递给管道。在大多数情况下这很好,但如果最外层是JSON数组,则整个数组作为单个对象传递到管道中。
相比:
ConvertFrom-Json
请注意,最后一个示例我们可以使用一元逗号运算符复制问题。
有关PowerShell Core 6的问题已被报道为odd behavior with pipelines。
试试这段代码:
ConvertFrom-Json
以上是关于如何在powershell中解析json响应的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中解析来自 Alamofire API 的 JSON 响应?
如何使用 Newtonsoft.JSON 解析 JSON 响应? [复制]
如何使用 SwiftyJson 解析 json 响应。以下是我的代码和回复
drf框架 2 drf框架的请求生命周期(as_view和dispatch方法), 请求解析渲染响应异常, 序列化组件 ,ORM配置回顾(media文件配置),应用在settings.py中(代码片