我正在尝试利用从JSON格式的API中捕获的一些数据,但是却难以以任何真正有意义的方式来利用它。我不确定数据是否与预期不符,或者问题出在我处理数据的方式上。
$result = Invoke-WebRequest -Method Post -URI "http://vwhmcs.com/includes/api.php" -Body $Body
这是API调用,从这里我需要的数据在$ result.content中,看起来像这样
{"result":"success","totalresults":2,"startnumber":0,"numreturned":2,"clients":{"client":[{"id":2,"firstname":"Edward","lastname":"Franks","companyname":"","email":"EdwardFranks@mail.com","datecreated":"2018-10-09","groupid":0,"status":"Inactive"},{"id":1,"firstname":"Frank","lastname":"Tighe","companyname":"U32 Consultation","email":"frank@u32.co.uk","datecreated":"2018-10-08","groupid":0,"status":"Active"}]}}
哪个是有效的JSON(我已对其进行验证)。尝试使之在我正在使用时可用
$result = ($result.content | convertfrom-json)
表面上似乎起作用
PS C:\WINDOWS\system32> $result
result : success
otalresults : 2
startnumber : 0
numreturned : 2
clients : @{client=System.Object[]}
但是,如果我尝试浏览这些数据,就会发现它没有被完全解析。
PS C:\WINDOWS\system32> $result.clients | ft -AutoSize -Wrap
client
------
{@{id=2; firstname=Edward; lastname=Franks; companyname=; email=EdwardFranks@mail.com; datecreated=2018-10-09; groupid=0; status=Inactive}, @{id=1; firstname=Frank; lastname=Tighe;companyname=U32 Consultation; email=frank@u32.co.uk; datecreated=2018-10-08; groupid=0; status=Active}}
现在,我可以看到此数据不是有效的JSON格式,但是如果您较早地检查了数据,则可以。 convertfrom-json函数已从其中删除了语音标记,这向我表明数据很好,但是我错误地调用了此函数。
有人可以告诉我如何正确执行此操作吗?
答案 0 :(得分:0)
您似乎需要的是
$TEST.clients.client | ft
JSON是
"clients":{
"client":[
{Client 1 Information Here},
{Client 2 Information Here}
“客户”是哈希表 {,其中
“客户”是数组 [ of
“ {客户信息}”哈希表