我使用PowerShell解析带有数组对象的Json文件,我的Json文件如下所示:

Test.json:

{ 
    "My Test Plan A": {
        "VariableA":"A",
        "VariableB":"B",
        "VariableC":"C",
        "VariableD":"D"
      },
    "My Test Plan B": {
        "VariableA":"E",
        "VariableB":"F",
        "VariableC":"G",
        "VariableD":"H"
    }
}

如您所见,在我的json文件中有两个对象My Test Plan AMy Test Plan B.每个对象都有相同的变量名,但它们的值不同.

现在我想要达到的是,when the name of the array object is given, to get the variables of the corresponding array, so that I can get all the variables in the array for the next code to use.

在获得对应的数组变量后,如何在下面的代码中获得它的表达式,如$(VariableA)

Note:

JSON文件是我自己写的,如果不合适,请直接修改

推荐答案

如果确实需要使用单个变量,请使用intrinsic .psobject property获取目标对象的属性,并使用Set-Variable设置基于这些属性的变量:

# Specify the name of the target property
$name = 'My Test Plan B'

Get-Content -Raw file.json | 
  ConvertFrom-Json |
  ForEach-Object { 
    foreach ($p in $_.$name.psobject.Properties) { 
      Set-Variable $p.Name $p.Value
    }
  }

但是,请注意,您可以只使用目标对象as a wholeaccess its properties,而不是定义多个变量:

# Specify the name of the target property
$name = 'My Test Plan B'

$object = (Get-Content -Raw file.json | ConvertFrom-Json).$name

# Now you can use $object.VariableA, ... 

Json相关问答推荐

两种情况下过滤的JOLT规范

将嵌套的json中的字符串强制转换为数字

Flutter -控制器问题-JSON API

jq如何合并两个json对象

Jolt规范:将嵌套数组中的null元素移除

转换为Json时忽略内部对象中的数组

如何将该 JSON 解析为 Kotlin 类?

从字节解码 JSON 数据,将 float 值更改为 int

JOLT 在 struct 体中间添加一个 JSON 字段

jq:来自嵌套 JSON 的映射

Vue 3如何将参数作为json发送到axios get

Swift - 将图像从 URL 写入本地文件

为什么在测试 RSPEC 时 JBuilder 不返回 JSON 中的响应正文

如何在 jQuery 中循环遍历 JSON 数组?

使用 gson 反序列化对象的特定 JSON 字段

Select 什么数据类型json或者jsonb或者text

在 Django 1.9 中,使用 JSONField(本机 postgres jsonb)的约定是什么?

java.lang.BootstrapMethodError:调用站点#4 bootstrap 方法的异常,初始化 retrofit 时

IE10/11 Ajax XHR 错误 - SCRIPT7002:XMLHttpRequest:网络错误 0x2ef3

将 JsonArray 添加到 JsonObject