Json, Powershell und Arrays
Moin Zusammen,
Mit Sicherheit gibt es hier jemanden der mir mit meinem Powershell-Problem behilflich sein kann
Ich stehe wieder vor einem Problem und komme nicht weiter. Weiter unten findet Ihr eine .json Datei mit Inhalt "Buch1" und "Buch2" die mit Keys und Werten gefüllt sind.
Ich möchte nun ein weiteres Array mit einem 3. Buch(Buch3) mit den Keys und Werten füllen. Die Funktion die ich erstellt habe geht nicht da es die Eigenschaft "Buch3" für das Objekt nicht gefunden wurde.
Wie bewerkstellige ich das am besten? Vielen Dank.
.json:
PS Funktion:
Vielen Dank im Voraus!
Mit Sicherheit gibt es hier jemanden der mir mit meinem Powershell-Problem behilflich sein kann
Ich stehe wieder vor einem Problem und komme nicht weiter. Weiter unten findet Ihr eine .json Datei mit Inhalt "Buch1" und "Buch2" die mit Keys und Werten gefüllt sind.
Ich möchte nun ein weiteres Array mit einem 3. Buch(Buch3) mit den Keys und Werten füllen. Die Funktion die ich erstellt habe geht nicht da es die Eigenschaft "Buch3" für das Objekt nicht gefunden wurde.
Wie bewerkstellige ich das am besten? Vielen Dank.
.json:
{
"Buch1": [
{
"Titel": "Spawn"
},
{
"Autor": " Todd McFarlane"
}
],
"Buch2": [
{
"Titel": "Spiderman"
},
{
"Autor": "Stan Lee"
}
]
}
PS Funktion:
function Add {
$NewKeyName = "Titel"
$NewKeyValue = "X-men"
$NewKeyName1 = "Autor"
$NewKeyValue1 = "Sten Lee"
$Block = "Buch3"
$jsonfile = "C:\test\config.json"
$json = Get-Content $jsonfile | ConvertFrom-json
$json.$Block += @{$NewKeyName=$NewKeyValue}
$json.$Block += @{$NewKeyName1=$NewKeyValue1}
$json | ConvertTo-Json | Set-Content $jsonfile
}
Vielen Dank im Voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 366068
Url: https://administrator.de/contentid/366068
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
Servus @SunnyRainyDay ,
machst für deinen im Thread geposteten JSON Aufbau so
Nach einem Convert mit ConvertFrom-JSON hast du ja erst einmal ein PSCustomObjekt, und um diesem weitere Eigenschaften zu verpassen nutzt du hier Add-Member mit dem Buchnamen als Name der Eigenschaft und als Value ein Array aus weiteren CustomObjects.
Ergebnis:
Grüße Uwe
machst für deinen im Thread geposteten JSON Aufbau so
#......
$json | Add-Member -MemberType NoteProperty -Name "Buch3" -Value @([pscustomobject]@{Titel="TitelXYZ"},[pscustomobject]@{Autor="Max Muster"})
# .....
$string = @"
{
"Buch1": [
{
"Titel": "Spawn"
},
{
"Autor": " Todd McFarlane"
}
],
"Buch2": [
{
"Titel": "Spiderman"
},
{
"Autor": "Stan Lee"
}
]
}
"@
$json = $string | ConvertFrom-Json
$json | Add-Member -MemberType NoteProperty -Name "Buch3" -Value @([pscustomobject]@{Titel="TitelXYZ"},[pscustomobject]@{Autor="Max Muster"})
$json | ConvertTo-Json
{
"Buch1": [
{
"Titel": "Spawn"
},
{
"Autor": " Todd McFarlane"
}
],
"Buch2": [
{
"Titel": "Spiderman"
},
{
"Autor": "Stan Lee"
}
],
"Buch3": [
{
"Titel": "TitelXYZ"
},
{
"Autor": "Max Muster"
}
]
}
Zitat von @SunnyRainyDay:
wie würdest du das gleiche nur mit löschen und verändern von Arrays und deren Inhalten vorgehen? Da werkle ich schon schon ne Weile dran aber komme auch da nicht weiter.
Ganze Bücher sowie würdest du das gleiche nur mit löschen und verändern von Arrays und deren Inhalten vorgehen? Da werkle ich schon schon ne Weile dran aber komme auch da nicht weiter.
$json.PSObject.Members.Remove("Buch2")
$json.Buch2.PSObject.Members.Remove("Titel")