Json til mere læsbart format via Powershell

Jeg har et GDPR projekt for en kunde hvor der skulle laves samtykke til kunderne. Det er i en stor verdensomspændende organisation, med mange forskellige systemer i EU der skal bindes op gennem samme system. Jeg hjælper til i 5 lande der skal binde 6 systemer sammen.

Der er lidt forsinkelse på leverancer, så for at kunne komme videre med en række tests downstream, så havde vi brug for at få fat i data så vi kunne teste. Jeg kan ikke gå for meget i detaljer, men App’en kører i AWS, som gemmer i .json format i en AWS S3 Bucket.

Disse Json filer er i flere niveauer, og da .json ikke er specielt læsbart, så lavede jeg et hurtigt script til at udlæse det så hver tester kunne få en liste. Jeg ville gerne have tilføjet det en smule smartere og sat Powershell op til at hente direkte fra en S3 Bucket, men pga. bureaukrati i forbindelse med at få adgang til at oprette nøgler så kunne det ikke lykkedes inden deadline.

Løsningen var at hente de gældende json filer ned i et lokal bibliotek og køre nedenstående powershell script. Output kan ses på billedet. Men for hver fil i biblioteket udlæser den de linjer som testerne skal bruge. Det vil være nemt at tilrette scriptet så output kunne komme i et excel ark i stedet.

function writeJson {
Param ($inFile)
” ”
#Basically just write lots of the parameters out to the screen, starting with the filename
“Filename: ” + $inFile
$json = get-content $inFile | ConvertFrom-Json
#Write everything in the json file:
#ConvertTo-Json $json -Depth 10
“customer_Number: ” + $json[0].consent.customer_number
“source_System: ” + $json[0].consent.source_system
“user: ” + $json[0].consent.permissions[0].user
“Parent-Guardian consent role: ” +$json[0].consent.permissions[0].appropriate_person.role
“Parent-Guardian consent title: ” +$json[0].consent.permissions[0].appropriate_person.title
“Parent-Guardian consent first name: ” +$json[0].consent.permissions[0].appropriate_person.first_name
“Parent-Guardian consent last name: ” +$json[0].consent.permissions[0].appropriate_person.last_name#$($json[0].consent.permissions.type) + $($json[0].consent.permissions.value)
foreach ($permission in $json[0].consent.permissions)
{($permission.value +” – ” + $permission.type)  | write-output}
}

Get-ChildItem “C:\json\” -Filter *.json

foreach($file in Get-ChildItem $fileDirectory)
{
writeJson($file.name)
}

VN:F [1.9.22_1171]
Rating: 6.0/6 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

IT automatisering og hvorfor du skal gøre det

Automatisering er en måde at optimere en proces ved at fjerne det menneskelig element. Det leder til mange fordele, ikke mindst er processen ens hver gang. Hastigheden og præcisionen er velkendt, og kompleksiteten er gemt af vejen. Det betyder at der ikke er behov for en med de specifikke kvalifikationer som der normalt er behov for. Læs mere IT automatisering og hvorfor du skal gøre det

VN:F [1.9.22_1171]
Rating: 6.0/6 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)

Håndtering af e-mails – På den effektive måde

I forlængelse af mit indlæg omkring todo lister var jeg forbi hvor meget tid e-mails egentlig tager af dagen. Der er lavet mange undersøgelser indenfor området og de viser at vi får en endorfinkick hver gang vi tjekker vores mail. Dette kick er grunden til at vi prioriterer indbakken frem for andre opgaver. Vi er nysgerrige og nervøse på samme tid, og vi må have svaret, er der sket noget? Læs mere Håndtering af e-mails – På den effektive måde

VN:F [1.9.22_1171]
Rating: 4.0/6 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)