首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Powershell转换为嵌套Json

将Powershell转换为嵌套Json
EN

Stack Overflow用户
提问于 2016-09-01 13:58:59
回答 1查看 9.2K关注 0票数 4

所以我试着解决这个问题已经有几天了,只是找不到有用的东西,所以我希望你能帮我或者指出正确的方向。

我正在创建一个powershell脚本,它在Active Directory中创建服务帐户,在脚本的末尾创建用户名和密码,然后存储在企业密码库中。REST Api用于在此库中存储凭据。我有点小问题,把我的powershell转换成嵌套的Json,没有嵌套的它工作得很好.

我需要了解的JSON输出如下:

代码语言:javascript
复制
{
"account":{
    "safe":"Test_safe",
    "platformID":"WindowsDomainAccount",
    "address":"ad.local",
    "password":"password",
    "username":"test",
    "disableAutoMgmt":"true",
    "disableAutoMgmtReason":"test",
    "properties":
    [
    {"Key":"Title", "Value":"Test Account"},
    {"Key":"Description", "Value":"REQ0000001"},
    ]
  }
}

这是我的Powershell,不包括“属性”嵌套,它工作得很好。

代码语言:javascript
复制
   $hash = [ordered]@{
        account = [ordered]@{
            safe="ServiceAccounts"; 
            platformID="WindowsDomainAccount";
            address="ad.local";
            password="Password1";
            username="svc-test";
            disableAutoMgmt="true";
            disableAutoMgmtReason="testing";
        }
   }

$json = $hash | ConvertTo-Json

$invoke = Invoke-Webrequest -Uri $url -Method "POST" -Body $json -ContentType "application/json" -Header @{"Authorization" = $header} -ErrorAction Stop -ErrorVariable WebError

当我尝试添加我的powershell时,问题就开始了。

代码语言:javascript
复制
"properties":
    [
    {"Key":"Title", "Value":"Test Account"},
    {"Key":"Description", "Value":"REQ0000001"},
    ]

我认为我的第一个问题是,关键字也是一个powershell关键字。

我尝试过许多不同的组合,并尝试了我发现的其他文章中的很多东西,但我发现的大多数事情都是通过Powershell解析嵌套的Jason返回。

希望这一切都有意义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-01 14:48:07

下面的代码适用于我(PS,v4),并且似乎以您想要的格式返回json。

代码语言:javascript
复制
$hash = [ordered]@{
    account = [ordered]@{
        safe="ServiceAccounts"; 
        platformID="WindowsDomainAccount";
        address="ad.local";
        password="Password1";
        username="svc-test";
        disableAutoMgmt="true";
        disableAutoMgmtReason="testing";

        properties = @(
            @{"Key"="Title"; "Value"="Test Account"},
            @{"Key"="Description"; "Value"="REQ0000001"}
        )

    }
}

$json = $hash | ConvertTo-Json -Depth 99
$json

上面的输出..。

代码语言:javascript
复制
{
    "account":  {
                    "safe":  "ServiceAccounts",
                    "platformID":  "WindowsDomainAccount",
                    "address":  "ad.local",
                    "password":  "Password1",
                    "username":  "svc-test",
                    "disableAutoMgmt":  "true",
                    "disableAutoMgmtReason":  "testing",
                    "properties":  [
                                       {
                                           "Key":  "Title",
                                           "Value":  "Test Account"
                                       },
                                       {
                                           "Key":  "Description",
                                           "Value":  "REQ0000001"
                                       }
                                   ]
                }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39273545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档