Мне трудно читать в файле JSON в powershell, заменить значение и записать обратно в файл или файл.
Учитывая следующее:
[Object]$QuickJson = @'
{
"swagger": "1.0",
"info": {
"version": "0.0.1",
"title": "this is a title",
"description": "this is a description"
},
"basePath": "/test",
"paths" : {
"/GetSomething": {
"get": {
"name" : "test01"
}
},
"/GetSomethingElse" : {
"get": {
"name" : "test02"
}
},
"/GetAnotherThing": {
"get": {
"name" : "test03"
}
}
}
}
'@
Здесь меня интересует замена значений в объекте "paths" чем-то другим.Я читаю файл и могу получить доступ к объекту, однако с тем, что я пытаюсь:
[object]$MyPSJson = ConvertFrom-Json -InputObject $QuickJson
foreach($info in $MyPSJson.paths.PSObject.Properties)
{
$path = $info.Name
Write-Host "path: $path"
$info.Name = "$path?code=fsfsfsfsfsfdfds"
Write-Host $info.Name
}
Я не знаю, какими будут эти "пути", мне нужно взять существующее значение и добавить кодзначение для этого, поэтому мне нужно иметь возможность перебрать все пути и сделать эту замену.Когда я пытаюсь выполнить вышеизложенное, я получаю сообщение об ошибке:
path: / GetSomething - 'Name' является свойством ReadOnly.В C: \ scripts \ test.ps1: 44 char: 5 + $ info.Name = "$ path? Code = fsfsfsfsfsfdfds" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: PropertyAssignmentException
Я пробовал несколькоразные вещи и еще предстоит придумать хорошее или работоспособное в этом отношении решение.Любая помощь или указание в правильном направлении очень ценится.