Arrays 如何在解析的JSON上添加数组中的对象?

Arrays 如何在解析的JSON上添加数组中的对象?,arrays,json,powershell,object,add,Arrays,Json,Powershell,Object,Add,我有这个文件。json: { “地形类型”:{ “电台”:{ “实例”:[ { “@name”:“value1”, @address:“value2” }, { “@name”:“value3”, “@地址”:“value4” } ] } }, “agg”:{}, “国际米兰”:{} } 我想在带有PowerShell的topologyType.stations.instances中添加这样的对象 { “@name”:“value4”, @address:“value5” }

我有这个文件。json:

{
“地形类型”:{
“电台”:{
“实例”:[
{
“@name”:“value1”,
@address:“value2”
},
{
“@name”:“value3”,
“@地址”:“value4”
}         
]
}
},
“agg”:{},
“国际米兰”:{}
}
我想在带有PowerShell的topologyType.stations.instances中添加这样的对象

{
“@name”:“value4”,
@address:“value5”
}
因此,我在PowerShell中尝试了以下代码,但不起作用:

$path=“./data.json”
$jsonFile=Get Content$path-Raw | ConvertFrom Json
$jsonContent=@”
{
“@name”:“value4”,
@address:“value5”
}
"@
$jsonFile.topologyTypes.stations.instances|
添加内容-值(从Json$jsonContent转换)
我希望得到的理想输出如下:

{
“地形类型”:{
“电台”:{
“实例”:[
{
“@name”:“value1”,
@address:“value2”
},
{
“@name”:“value3”,
“@地址”:“value4”
},
{
“@name”:“value4”,
@address:“value5”
}         
]
}
},
“agg”:{},
“国际米兰”:{}
}

将新内容定义为PowerShell自定义对象:

$jsonContent = [PSCustomObject]@{
    '@name'   = 'value4'
    '@adress' = 'value5'
}
将其附加到导入的JSON数据的
实例
子结构中:

$jsonFile.topologyTypes.stations.instances += $jsonContent
然后将数据转换回JSON字符串:

$jsonFile | ConvertTo-Json -Depth 4

请注意,
converttojson
插入了大量的意图空间。如果你想要你发布的格式,你需要自己做一些漂亮的打印。类似的内容可能会有所帮助。

将新内容定义为PowerShell自定义对象:

$jsonContent = [PSCustomObject]@{
    '@name'   = 'value4'
    '@adress' = 'value5'
}
将其附加到导入的JSON数据的
实例
子结构中:

$jsonFile.topologyTypes.stations.instances += $jsonContent
然后将数据转换回JSON字符串:

$jsonFile | ConvertTo-Json -Depth 4

请注意,
converttojson
插入了大量的意图空间。如果你想要你发布的格式,你需要自己做一些漂亮的打印。类似的内容可能会有所帮助。

“它不起作用”是一个不充分的问题描述。它究竟如何“不起作用”?你有错误吗?预期和实际结果是什么?乍一看,我至少可以发现一个PowerShell和一个JSON语法错误。您好,谢谢您的回复。我收到了以下错误:ConvertFrom Json:无效的Json原语:[(system.Argument.exception)+…ations.instances |添加内容-值(ConvertFrom Json$jsonContent)+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+CategoryInfo:未指定:(:)[ConvertFrom Json],ArgumentException+FullyQualifiedErrorId:System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJSONCommand,因为
$jsonContent
中的尾随逗号使JSON字符串无效。但即使将其删除,也无法通过附加到文件将新数据插入JSON结构。即使是原始JSON字符串您发布的内容无效。请您的问题显示您的代码、输入、所需的输出以及代码提供给您的地址。好的,所以我修改了我的第一篇文章。对不起。我对json文件的语法不太熟悉。在解析“它不起作用”之前,可以将
[
字符串替换为
+
$jsonContent
是一个不充分的问题描述。它到底如何“不起作用”?您是否收到错误?预期和实际结果是什么?乍一看,我至少可以发现一个PowerShell和一个JSON语法错误。您好,感谢您的回复。我收到了以下错误:ConvertFrom JSON:无效的JSON原语:[.(system.Argument.exception)+…ations.instances |添加内容-值(ConvertFrom Json$jsonContent)+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+CategoryInfo:NotSpecified:(:)[ConvertFrom Json],ArgumentException+FullyQualifiedErrorId:System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJSONCommand,因为
$jsonContent
中的尾随逗号使JSON字符串无效。但即使将其删除,也无法通过附加到文件将新数据插入JSON结构。即使是原始JSON字符串您发布的内容无效。请您的问题显示您的代码、输入、所需的输出以及代码提供给您的地址。好的,所以我修改了我的第一篇文章。对不起..我对json文件的语法不太熟悉。在解析之前,可能只需将字符串替换为
[
+
$jsonContent