Пример
В своем ответе я использую этот Пример Json (показан ниже), поскольку у вас нет примера в вашем вопросе:
$template = ConvertFrom-Json @'
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
'@
Форматированиесложные объекты
Как вы можете видеть здесь, оригинальный файл Json
на самом деле уже является хорошим представлением того, как выглядит иерархия объектов.Это, очевидно, в формате Json (JavaScript).Если вы хотите отобразить его как обратимое выражение PowerShell , вы можете использовать функцию PowerShell ConvertTo-Expression из Галерея PowerShell .
Использованиепример:
Write-Host ($template | ConvertTo-Expression)
[PSObject]@{'glossary' = [PSObject]@{
'GlossDiv' = [PSObject]@{
'GlossList' = [PSObject]@{'GlossEntry' = [PSObject]@{
'Abbrev' = 'ISO 8879:1986'
'Acronym' = 'SGML'
'GlossDef' = [PSObject]@{
'GlossSeeAlso' = @(
'GML',
'XML'
)
'para' = 'A meta-markup language, used to create markup languages such as DocBook.'
}
'GlossSee' = 'markup'
'GlossTerm' = 'Standard Generalized Markup Language'
'ID' = 'SGML'
'SortAs' = 'SGML'
}}
'title' = 'S'
}
'title' = 'example glossary'
}}
Обратите внимание, что вы можете легко перевернуть выражение с помощью PowerShell.Значение:
$Expression = $template | ConvertTo-Expression # Object to Expression
$template = &$Expression # Expression back to Object
Доступ к свойствам объекта Json и элементам массива
Что касается печати определенного ключа:
Чтобы обратиться к свойству объекта:
$template.Glossary.Title
example glossary
Чтобы обратиться к элементу массива (в цепочке объектов):
$template.Glossary.GlossDiv.GlossList.GlossEntry.GlossDef.GlossSeeAlso[1]
XML