我有一个需要扩展的对象。问题是在转换为JSON之后,内部数组对象始终为空。我不知道我的失败在哪里:)
$settings = @{}
# create the nested object
$settings | Add-Member -Type NoteProperty -Name nested_obj -Value @{}
# extend the nested object with an array property
$settings.nested_obj | Add-Member -Type NoteProperty -Name nested_property -Value @( "1", "2" )
# {"nested_property":["1","2"]}
Write-Host ( $settings.nested_obj | ConvertTo-Json -Compress -Depth 100 )
# {"nested_obj":{}} - the nested object is unexpectedly empty
Write-Host ( $settings | ConvertTo-Json -Compress -Depth 100 )
谢谢
1条答案
按热度按时间cbjzeqam1#
ConvertTo-Json
看到存储在$settings
中的对象是一个 hashtable,所以它不是序列化属性,而是开始序列化字典条目-你没有。将
nested_obj
和nested_property
值附加为字典条目:...或者,使用实际(非字典)对象
PowerShell 2.0等效版本,使用
Add-Member
,将与您最初的尝试非常相似,不同之处在于我们将@{}
替换为New-Object psobject
: