Powershell ConvertFrom- Json выходной формат json неверен - PullRequest
1 голос
/ 13 июля 2020

У меня есть файл json, я преобразовал его с помощью ConvertFrom- json, но результат, который я получаю ниже.

Get-Content ".\example1.JSON" | ConvertFrom-Json

Результат, который я получаю, как показано ниже

---------------------------------
Result                                                                                                                                                                               
------                                                                                                                                                                               
{@{_id=5f0bdeec01c99848bcbbba07; index=0; guid=a1c59de9-94c9-4a53-9a18-61a35457b7a2; isActive=False; balance=$3,782.46; picture=http://placehold.it/32x32; age=28; eyeColor=blue; ...

Но я хочу, чтобы это было в формате ниже из-за "{" Result ":" он не приходит в правильном формате, может кто-нибудь предложить, как его преодолеть?

_id           : 5f0bdeec01c99848bcbbba07
index         : 0
guid          : a1c59de9-94c9-4a53-9a18-61a35457b7a2
isActive      : False
balance       : $3,782.46
picture       : http://placehold.it/32x32
age           : 28
eyeColor      : blue
name          : Tran Rodriquez
gender        : male
company       : VIRVA
email         : tranrodriquez@virva.com
phone         : +1 (908) 426-2103
address       : 222 Crosby Avenue, Frierson, Louisiana, 613

Вот пример содержимого файла JSON:

{
  "Result": [
    {
      "id": 10,
      "name": "shirt",
      "color": "red",
      "_id": "5f0bdeec01c99848bcbbba07",
      "host": "tester1"
    },
    {
      "id": 11,
      "name": "coat",
      "color": "black",
      "price": "$2300"
    }
  ]
}

1 Ответ

1 голос
/ 13 июля 2020

Вам необходимо получить доступ к свойству .Result, чтобы иметь (вложенный) объект, который он содержит правильно, формат:

(Get-Content -Raw .\example1.JSON | ConvertFrom-Json).Result

Обратите внимание на использование -Raw, что делает Get-Content читать файл целиком, как одну строку - хотя это и не является строго необходимым, это ускоряет обработку , учитывая, что ConvertFrom-Json в любом случае должен сначала собрать весь ввод.

Объект, вложенный в другой объект как значение свойства , форматируется с использованием однострочного, ha sh -table literal- как представления, как вы

Простой пример:

PS> [pscustomobject] @{ foo = 1; bar = [pscustomobject] @{ baz = 2 } }

foo bar
--- ---
  1 @{baz=2}

Обратите внимание на представление вложенного настраиваемого объекта, хранящегося в свойстве .bar.

Это ha sh -table literal- как представление - это строковая экземпляров [pscustomobject], как (также) используется в расширяемых строках ; например, "$([pscustomobject] @{ baz = 2 })" дает '@{baz=2}' - подробнее см. этот ответ .

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