gpt4 book ai didi

json - 在powershell中合并两个Jsons

转载 作者:可可西里 更新时间:2023-11-01 10:16:36 26 4
gpt4 key购买 nike

我有以下两个对象,它们是从 2 个 Json 文件中获取的:

$Env = ConvertFrom-Json "$(get-content "C:\chef\environments.json")"
$Roles = ConvertFrom-Json "$(get-content "C:\chef\roles.json")"

这是转换后的输出:

PS C:\chef> $Env

run_list
--------
{recipe[djin_chef-max_any::default]}


PS C:\chef> $Roles


7-zip : @{home=%SYSTEMDRIVE%\7-zip}
cookbook_versions :
default : @{env=development}
modmon : @{env=dev}
paypal : @{artifact=%5BINTEGRATION%5D}
seven_zip : @{url=https://djcm-zip-local/djcm/chef}
task_sched : @{credentials=XN$q}
windows : @{password=K1N5}

我需要在 powershell 中合并这两个 Json 对象,我尝试了以下操作:

PS C:\chef> $Roles+$Env
Method invocation failed because [System.Management.Automation.PSObject] does not contain a method named 'op_Addition'.
At line:1 char:1
+ $Roles+$Env
+ ~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

如果我做错了或者为什么会出现此错误,是否还有另一种优雅的方式来做到这一点?

最佳答案

$Env 只有一个属性,因此您可以向 $Roles 添加一个新成员:

$Roles | Add-Member -NotepropertyName run_list -NotePropertyValue $Env.run_list

此语法适用于 PowerShell v3,但您在标签中列出了 v2 和 v2.. 所以对于 v2:

$Roles | Add-Member -MemberType NoteProperty -Name run_list -Value $Env.run_list

关于json - 在powershell中合并两个Jsons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38753274/

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