From dbad99dd341925c777543c283251bde9aac71390 Mon Sep 17 00:00:00 2001 From: Victor Fors Date: Mon, 18 Apr 2022 22:30:07 +0200 Subject: [PATCH] more custom json parsing --- parking.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/parking.scm b/parking.scm index b0f1ef3..5c90c4c 100644 --- a/parking.scm +++ b/parking.scm @@ -3,6 +3,7 @@ (import srfi-1) (import (chicken io)) (import (chicken sort)) +(import srfi-13) (define (curry fn a) (lambda (b) @@ -55,22 +56,24 @@ (define (get-parking-lots) (let ((result (simple-json-request (string-append "http://parkering.linkoping.se/Parkeringsdata/ParkeringsdataV1.svc/GetParkeringsYtaList/" parking-key "/0")))) - (value 'ParkingAreaNewList result))) + (value 'parkingareanewlist result))) (define (computerized? lot) - (has-key? 'ParkingSpacesAvailable lot)) + (has-key? 'parkingspacesavailable lot)) (define (only-has-handicap-spots? lot) - (equal? '(4) (value 'ParkingTypes lot))) + (equal? '(4) (value 'parkingtypes lot))) (define (electric-car-lot? lot) - (member? 3 (value 'ParkingTypes lot))) + (member? 3 (value 'parkingtypes lot))) (define (main) - (json-parsers (cons `(array . ,identity) (json-parsers))) + (json-parsers (append `((member . ,(lambda (k v) + (cons (string->symbol (string-downcase k)) v))) + (array . ,identity)) (json-parsers))) (display-newline "Parking spaces available:") - (let ((lots (sort-via string-ci