我试图使用powershell与使用Invoke-RestMethod函数的api进行通信。Powershell:引用嵌套的JSON数组中的值
从我可以告诉这个返回作为一个PowerShell对象(数组)的JSON响应。结果有两个级别是项目列表,然后是针对这些项目设置的自定义字段。
我想循环每个项目,然后通过项目的每个自定义字段,然后使用此信息执行各种SQL操作。
目前我很苦恼,我可以使用ForEach循环通过作为项目的顶级“数据”,但是当我尝试循环通过项目的自定义字段时,它实际上循环遍历所有所有项目的自定义字段。
我已经使用我有限的PowerShell和许多小时的搜索和阅读经验得到了这么多。不过,我确信我只是不理解整个概念,希望这只是一个简单的问题,我试图引用数据...
这是api响应的一个示例。
"TotalPages":1, "TotalRecords":2, "Data":[
{
"code":"00000014",
"description":"Digital Strategy",
"customFieldValues":[
{
"key":135,
"name":"Department",
"value":"Sales"
}
]
},
{
"code":"T3FA",
"description":"Survey coding",
"customFieldValues":[
{
"key":135,
"name":"Department",
"value":"Finance"
}
]
} ] }
这是我简单的代码来循环响应。
$APIResponse = Invoke-RestMethod -Uri $Uri -Headers $Headers
ForEach ($d in $APIResponse.data) {
"Project Code = " + $d.code + ", Project Description = " + $d.description
ForEach ($e in $APIResponse.data.customFieldValues) {
"CustomField Key " + $e.key + ", Name " + $e.name + ", Value " + $e.value
}
}
我想这是做什么,它是被要求做的,它的循环遍历所有customFieldValue但我需要它只是通过与我目前通过,如果循环项目中的自定义字段循环这有什么意义?