Правильное использование Convertfrom-json - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь использовать некоторые данные, полученные из API в формате JSON, но изо всех сил пытаюсь использовать их любым реальным способом.Я не уверен, что данные не совсем такие, как ожидалось, или проблема в том, как я их обрабатываю.

$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 удалила с нее речевые метки, что говорит о том, что данные были в порядке, но я вызываю эту функцию неправильно.

Может кто-нибудь сказать мне, как это сделать правильно?

1 Ответ

0 голосов
/ 09 октября 2018

Кажется, что вам нужно это

$TEST.clients.client | ft

JSON - это

"clients":{
    "client":[
        {Client 1 Information Here},
        {Client 2 Information Here}

"клиенты" - это хеш-таблица { с

"клиент" - это массив [ из

"{Информация о клиенте}" Хеш-таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...