Создайте строку с объектом JSON в PowerShell - PullRequest
0 голосов
/ 05 августа 2020

Как мне написать val1 в строке ниже? Конечно, это должно быть очень просто, но я нигде не могу найти пример

$jsobj = @"
    {
    val1 : "test",
    val2 : "test1"
    }
"@ | ConvertFrom-Json


Write-Host @"
    Value of val1: $jsobj.val1
"@

1 Ответ

2 голосов
/ 05 августа 2020

Вам нужно будет предотвратить преждевременное расширение вашей переменной, чтобы получить доступ к значению ее свойства. Оператор подвыражения $() позволяет оценивать все, что находится внутри, как выражение.

$jsobj = @"
    {
    val1 : "test",
    val2 : "test1"
    }
"@ | ConvertFrom-Json


Write-Host @"
    Value of val1: $($jsobj.val1)
"@

Когда переменная находится внутри расширяемой строки (одна с внешними двойными кавычками), переменная заменяется ее ToString() значение. Все, что находится после этой переменной, рассматривается как часть строки, а не как переменная. Ниже приведен тривиальный пример.

$str = 'my string'
"$str.Length"
my string.Length
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...