Ключи PowerShell ConvertTo-Json в нижнем регистре - PullRequest
0 голосов
/ 29 апреля 2018

Запуск этого кода

get-service | Select-Object -Property displayname, status, name | convertTo-Json

приводит, например, к выводу, подобному следующему:

{
    "DisplayName":  "Adobe Acrobat Update Service",
    "Status":  4,
    "Name":  "AdobeARMservice"
},
{
    "DisplayName":  "Adobe Flash Player Update Service",
    "Status":  1,
    "Name":  "AdobeFlashPlayerUpdateSvc"
},

Можно ли вернуть ключи в нижнем регистре?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Вы можете использовать рассчитанные свойства:

get-service | Select-Object -Property @{n='displayname';e={$_.displayname.tolower()}}, status, name | convertTo-Json

что это меняет способ форматирования вывода

пс. Вы можете повторить это со всеми свойствами имп. https://blogs.technet.microsoft.com/josebda/2014/04/19/powershell-tips-for-building-objects-with-custom-properties-and-special-formatting/

0 голосов
/ 29 апреля 2018

Вы можете использовать регулярные выражения для решения требования:

#Create a variable with the info
$json = Get-Service | Select-Object -Property displayname, status, name | convertTo-Json
#Use RegEx
[regex]::Replace(
    $json,
    '(?<=")(\w+)(?=":)',
    {$args[0].Groups[1].Value.ToLower()}
)

И вывод такой:

[
    {
        "displayname":  "Application Identity",
        "status":  1,
        "name":  "AppIDSvc"
    },
    {
        "displayname":  "Application Information",
        "status":  4,
        "name":  "Appinfo"
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...