如何将json中的字符串数组转换为powershell中的字符串数组?

时间:2018-03-25 10:25:41

标签: arrays json powershell powershell-v3.0

我在json以下

{
  "abc": [
    { "def": [ "", "" ] },
    { "ghi": [ "", "" ] },
    { "xyz" : ["\\[dbo\\].\\[abc1\\]", "\\[dbo\\].\\[def1\\]"] }
  ]
}

我想阅读这个json并使用下面的代码将powersy的xyz元素字符串转换为字符串数组,但它不起作用。

$json = Get-Content "path to json file" | Out-String
$json = $json | ConvertFrom-Json
GetArrayFromJson -json $json
$global:array
Function GetArrayFromJson(){

Param(
    $json       
)

$global:array= ''
     $global:array

    $global:array=  $json.abc.xyz
     $global:array
}

1 个答案:

答案 0 :(得分:1)

这不符合评论...假设我有一个像这样的json字符串:

$rawjson = @'
{
  "abc": [
    { "def": [ "", "" ] },
    { "ghi": [ "", "" ] },
    { "xyz" : ["\\[dbo\\].\\[abc1\\]", "\\[dbo\\].\\[def1\\]"] }
  ]
}
'@ 

我将它转换为像这样的Powershell对象:

$json = ConvertFrom-Json -InputObject $rawjson

我可以访问" xyz"这样的财产:

$json.abc.xyz

当我用一个param块创建一个合适的函数时! ;-)像这样:

Function GetArrayFromJson{
    Param(
        $json       
    )
    $json.abc.xyz
}
GetArrayFromJson $json

并运行它我得到两个相同的输出:

\[dbo\].\[abc1\]
\[dbo\].\[def1\]