Skip to content

Add an -AsArray switch to ConvertTo-Json to support unconditional conversion to a JSON array #6327

@mklement0

Description

@mklement0

Based on a suggestion by @AikenBM, welcomed by @SteveL-MSFT:

Similar to how @(...) ensures treatment of any value as an array, it would be handy if an -AsArray switch could instruct ConvertTo-Json to treat its input as an [ultimately JSON] array, so you can guarantee that your pipeline input is treated as an array, even if it happens to be a single item only:

Wishful thinking:

> $in = 1; $in | ConvertTo-Json -AsArray
[ 
  1 
] 
# scalar 1 was treated as an array

> $in = 1, 2; $in | ConvertTo-Json -AsArray
[ 
  1, 
  2 
]  
# Input that already is an array is left as-is

Awkward workaround, in the absence of -AsArray:

> $in = 1; , @($in) | ConvertTo-Json -AsArray
[ 
  1 
] 

Environment data

Written as of PowerShell Core v6.0.1

Metadata

Metadata

Assignees

Labels

Issue-Enhancementthe issue is more of a feature request than a bugResolution-FixedThe issue is fixed.WG-Cmdlets-Utilitycmdlets in the Microsoft.PowerShell.Utility module

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions