gpt4 book ai didi

json - 使用Powershell删除变量内的循环

转载 作者:行者123 更新时间:2023-12-02 23:17:33 25 4
gpt4 key购买 nike

我没有调用rest方法,并将输出存储在变量$ a中,并使用convertTo-json,我想删除不需要的变量和值。
我已经使用$ a-替换“变量”-替换“值”,但是它不起作用

最佳答案

不要尝试将JSON作为文本(作为字符串)进行操作。

转换代表 [pscustomobject] 返回的输入JSON的_objects(Invoke-RestMethod实例)更容易,也更可靠:

# Assume that $fromJson was obtained as follows:
# $fromJson = Invoke-RestMethod ...

$fromJson.variables | ForEach-Object {
# Replace the property values with the current value's .value property
# value.
foreach ($prop in $_.psobject.Properties) {
$_.($prop.Name) = $prop.Value.value
}
$_ # Output the modified object.
} | ConvertTo-Json
$json.variables使用 member enumeration返回 variables属性值的数组,并且 ForEach-Object 命令通过将结果对象的属性值替换为其 .value属性值来转换结果对象。
.psobject.Properties是反射(reflect)任何对象属性的一种方式,并且返回的每个属性信息对象都有一个 .Name.Value属性。

ConvertTo-Json 将修改后的对象转换回JSON

给定以下示例JSON输入:
[
{
"variables": {
"appdata": {
"value": "x1"
},
"appinsta": {
"value": "y1"
}
}
},
{
"variables": {
"appdata": {
"value": "x2"
},
"appinsta": {
"value": "y2"
}
}
}
]

以上输出:
[
{
"appdata": "x1",
"appinsta": "y1"
},
{
"appdata": "x2",
"appinsta": "y2"
}
]

关于json - 使用Powershell删除变量内的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60796422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com