_JsonTransformAttributeClass.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using namespace System.Management.Automation

class JsonTransformAttribute : System.Management.Automation.ArgumentTransformationAttribute {
    [object] Transform([EngineIntrinsics]$engineIntrinsics, [object] $inputData) {
        $outputData = switch ($inputData) {
            { $_ -is [string] } {
                if ($_.StartsWith('[')) {
                    $_ | ConvertFrom-Json
                }
                elseif ($_.StartsWith('{')) {
                    $_ | ConvertFrom-Json
                }
                else {
                    $_
                }
            }
            default {
                $_
            }
        }

        return $outputData
    }
}