powershell使用Sort-Object按值对json进行排序

Sch*_*rDB 4 powershell sort-object

我有一个 JSON 文件,其中一个数组作为值,我想对数组进行排序。

测试.json

{
    "user_name" : "paul",
    "cars" : 
    [
        {
            "name" : "BMW"
        },
        {
            "name" : "VW"
        },              
        {
            "name" : "Audi"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我的 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"
                 }
             ]
}
Run Code Online (Sandbox Code Playgroud)

如何对数组“汽车”进行排序以获得正确的顺序“奥迪”、“宝马”、“大众”?

Ans*_*ers 5

您需要对属性的值进行排序cars并将排序结果分配回属性:

$json = Get-Content '.\test.json' | ConvertFrom-Json
$json.cars = $json.cars | Sort-Object name
$json | ConvertTo-Json
Run Code Online (Sandbox Code Playgroud)