PowerShell сортирует JSON по значению с помощью Sort-Object - PullRequest
0 голосов
/ 14 января 2019

У меня есть файл JSON с массивом в качестве значения, и я хотел бы отсортировать массив по значению.

test.json

{
    "user_name" : "paul",
    "cars" : 
    [
        {
            "name" : "BMW"
        },
        {
            "name" : "VW"
        },              
        {
            "name" : "Audi"
        }
    ]
}

Моя команда powershell

Get-Content .\test.json | ConvertFrom-Json | Sort-Object -Property @{expression={$_.cars.name};Descending=$true} | ConvertTo-Json
{
    "user_name":  "paul",
    "cars":  [
                 {
                     "name":  "BMW"
                 },
                 {
                     "name":  "VW"
                 },
                 {
                     "name":  "Audi"
                 }
             ]
}

Как можно отсортировать массив «авто», чтобы получить правильный порядок «Ауди», «БМВ», «Фольксваген»?

Ответы [ 2 ]

0 голосов
/ 14 января 2019
$json = @"
{
  "user_name":  "paul",
  "cars":  [
               {
                   "name":  "BMW"
               },
               {
                   "name":  "VW"
               },
               {
                   "name":  "Audi"
               }
           ]
}
"@

$obj = ConvertFrom-Json $json
$obj.cars | Sort-Object {$_.name} | ConvertTo-Json
0 голосов
/ 14 января 2019

Вам необходимо отсортировать значение свойства cars и присвоить отсортированный результат обратно свойству:

$json = Get-Content '.\test.json' | ConvertFrom-Json
$json.cars = $json.cars | Sort-Object name
$json | ConvertTo-Json
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...