我正在尝试利用从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函数删除了其中的语音标记,这向我表明数据是好的,但我调用这个函数是错误的。
有没有人能告诉我怎么做才对?
发布于 2018-10-09 22:50:36
看起来你需要的是
$TEST.clients.client | ftJSON是
"clients":{
"client":[
{Client 1 Information Here},
{Client 2 Information Here}"clients“是哈希表{ with
“”是一个数组客户端[ of
"{Client Information}“哈希表
https://stackoverflow.com/questions/52718275
复制相似问题