首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PowerShell将新的JsonArray属性添加到现有的Json属性

如何使用PowerShell将新的JsonArray属性添加到现有的Json属性
EN

Stack Overflow用户
提问于 2020-03-26 22:33:40
回答 1查看 95关注 0票数 0

我已经有一个通过调用API获得的Json值,我想要向现有属性添加一个新的Json列表,因此

代码语言:javascript
复制
 #calling some API in a loop Start

        $apijson = Invoke-WebRequest -Uri $api -ErrorAction SilentlyContinue | ConvertFrom-Json
        $response = $apijson| ConvertTo-Json 

        $null = $data.Add($response);

 #calling some API in a loop End

我的apiJson将如下所示

代码语言:javascript
复制
  {
            "host": "tet",
            "port": 443,
            "protocol": "http",
            "isPublic": false,
            "status": "READY",
            "startTime": 1585220081665,
            "testTime": 1585220127003,
            "engineVersion": "2.1.0",
            "criteriaVersion": "2009q",
            "endpoints": [
                {
                    "delegation": 1
                }
            ]
        }

现在我有了一个自定义的新JsonArray

代码语言:javascript
复制
[
    {
        "name":  "TLE",
        "Strength":  128
    },
    {
        "name":  "TLS",
        "trength":  415
    }
]

我想把上面的JsonArray添加到我原来的Json属性中,这样就可以生成一个完整的Json了,如下所示

代码语言:javascript
复制
{
            "host": "tet",
            "port": 443,
            "protocol": "http",
            "isPublic": false,
            "status": "READY",
            "startTime": 1585220081665,
            "testTime": 1585220127003,
            "engineVersion": "2.1.0",
            "criteriaVersion": "2009q",
            "endpoints": [
                {
                    "delegation": 1
                }
            ]
        },
    "Strength": [
         {
            "name":  "TLE",
            "Strength":  128
          },
        {
           "name":  "TLS",
           "trength":  415
        }
       ]

不幸的是,我尝试了Addmember,Concatination都不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 00:00:50

这适用于将Strength作为属性添加到现有的单个对象(从JSON转换而来)的时候。使用Add-Member时,需要强制新对象成为单个数组对象。

代码语言:javascript
复制
$apijson = Invoke-WebRequest -Uri $api -ErrorAction SilentlyContinue | ConvertFrom-Json
$newjson = @'
[
    {
        "name":  "TLE",
        "Strength":  128
    },
    {
        "name":  "TLS",
        "trength":  415
    }
]
'@ | ConvertFrom-Json
$apijson | Add-Member -Type NoteProperty -Name 'Strength' -Value @($newjson)
$apijson | ConvertTo-Json -Depth 10
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60869635

复制
相关文章

相似问题

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