我在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
}
答案 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\]