- 此问题在此处已有答案**:
Merge two json objects(3个答案)
2天前关闭。
我需要将两个.Json
文件合并为一个.Json
文件:
第一个文件start.json
如下所示:
{
"MOUSE GESTURE L Start": {
"prefix": "MOUSE GESTURE L Start To Start",
"body": [
"MG_Start()"
],
"description": "Start Cursor back to its start"
}
}
第二个文件end.json
如下所示:
{
"MOUSE GESTURE L Move To end": {
"prefix": "MOUSE GESTURE L Move To end",
"body": [
"MG_Move()"
],
"description": "Move Cursor back to its end"
}
}
我的预期目标是:
{
"MOUSE GESTURE L Start": {
"prefix": "MOUSE GESTURE L Start To Start",
"body": [
"MG_Start()"
],
"description": "Start Cursor back to its start"
}
"MOUSE GESTURE L Move To end": {
"prefix": "MOUSE GESTURE L Move To end",
"body": [
"MG_Move()"
],
"description": "Move Cursor back to its end"
}
}
我试过:
$Jstart = (Get-Content .\start.json -Raw) | ConvertFrom-Json
$JEnd = (Get-Content .\end.json -Raw) | ConvertFrom-Json
$Hash = [PSCustomObject]@{
$Jstart = (Get-Content .\start.json -Raw) | ConvertFrom-Json
$JEnd = (Get-Content .\end.json -Raw) | ConvertFrom-Json
}
但我得到了一个不想要的混乱输出:
{
"@{MOUSE GESTURE L Start=}": {
"MOUSE GESTURE L Start": {
"prefix": "MOUSE GESTURE L Start To Start",
"body": "MG_Start()",
"description": "Start Cursor back to its start"
}
},
"@{MOUSE GESTURE L Move To end=}": {
"MOUSE GESTURE L Move To end": {
"prefix": "MOUSE GESTURE L Move To end",
"body": "MG_Move()",
"description": "Move Cursor back to its end"
}
}
}
我试过各种变化,但情况变得更糟。有什么办法可以让我做对吗?谢谢
编辑:
@圣地亚哥斯夸松
虽然Solution适用于我提供的示例,但我在尝试将其适应我的代码时遇到了问题。
我遇到的问题是,如果其中一个.Json
文件碰巧包含多个对象,如下所示:
{
"MOUSE GESTURE L Move To end": {
"prefix": "MOUSE GESTURE L Move To end",
"body": [
"MG_Move()"
],
"description": "Move Cursor back to its end"
},
"Another Snippet": {
"prefix": "MOUSE GESTURE L Move To end",
"body": [
"MG_Move()"
],
"description": "Move Cursor back to its end"
}
}
然后$left.PSObject.Properties.Add($($right.PSObject.Properties))
失败,我得到错误:
MethodException:
Cannot find an overload for "Add" and the argument count: "1".
1条答案
按热度按时间mspsb9vt1#
最简单的方法可能是将一个对象附加到另一个对象上:
生成的Json看起来像这样: