(import (except (srfi 180) json-null) (srfi 1)) (begin (define json-object list) (define json-list vector) (define json-null 'null) (define json-object? list?) (define json-list? vector?) ;; json-null? already defined in srfi 180 (define (json-object-contains-key? obj key) (and (assoc key obj) #t)) (define (string->json str) (call-with-port (open-input-string str) (lambda (port) (json-read port)))) (define (json->string json) (call-with-port (open-output-string) (lambda (port) (json-write json port) (get-output-string port)))) (define (json-object-ref json key) (let ((pair (assoc key json))) (if pair (cdr pair) ((json-key-not-found))))) (define json-list-ref vector-ref) (define json-list-length vector-length) (define json-object->alist values) (define json-list->list vector->list))