Ho una parte di codice che funziona ma voglio sapere se c'è un modo migliore per farlo. Non ho trovato nulla di simile finora. Ecco i fatti:Come escludere le proprietà degli oggetti non di valore durante la conversione in JSON in Powershell
- Ho un oggetto con n proprietà.
- Voglio convertire questo oggetto in JSON utilizzando (ConvertTo-Json).
- Non voglio includere nel JSON quelle proprietà dell'oggetto che non sono valutate.
Costruire l'oggetto (non veramente importante):
$object = New-Object PSObject
Add-Member -InputObject $object -MemberType NoteProperty -Name TableName -Value "MyTable"
Add-Member -InputObject $object -MemberType NoteProperty -Name Description -Value "Lorem ipsum dolor.."
Add-Member -InputObject $object -MemberType NoteProperty -Name AppArea -Value "UserMgmt"
Add-Member -InputObject $object -MemberType NoteProperty -Name InitialVersionCode -Value ""
La linea che ho bisogno miglioramenti (per filtrare le proprietà non-valore e non includerli nella JSON)
# So I want to 'keep' and deliver to the JSON only the properties that are valued (first 3).
$object | select -Property TableName, Description, AppArea, InitialVersion | ConvertTo-Json
Che questa linea offre:
Results:
{
"TableName": "MyTable",
"Description": "Lorem ipsum dolor..",
"AppArea": "UserMgmt",
"InitialVersion": null
}
What I want to obtain:
{
"TableName": "MyTable",
"Description": "Lorem ipsum dolor..",
"AppArea": "UserMgmt"
}
quello che ho provato e funziona, ma non mi piace dal momento che ho molto di più oggetti da gestire:
$JSON = New-Object PSObject
if ($object.TableName){
Add-Member -InputObject $JSON -MemberType NoteProperty -Name TableName -Value $object.TableName
}
if ($object.Description){
Add-Member -InputObject $JSON -MemberType NoteProperty -Name Description -Value $object.Description
}
if ($object.AppArea){
Add-Member -InputObject $JSON -MemberType NoteProperty -Name AppArea -Value $object.AppArea
}
if ($object.InitialVersionCode){
Add-Member -InputObject $JSON -MemberType NoteProperty -Name InitialVersionCode -Value $object.InitialVersionCode
}
$JSON | ConvertTo-Json
Sì, questo sembra funzionare ed è più pulito. Grazie! –