diff options
Diffstat (limited to 'lib/zambyte/meta/chibi.scm')
-rw-r--r-- | lib/zambyte/meta/chibi.scm | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/zambyte/meta/chibi.scm b/lib/zambyte/meta/chibi.scm index 49f72f6..fc8e942 100644 --- a/lib/zambyte/meta/chibi.scm +++ b/lib/zambyte/meta/chibi.scm @@ -2,9 +2,6 @@ (srfi 1) (srfi 2)) (begin - ;; json->string already defined in chibi json - ;; string->json already defined in chibi json - (define (json-object . pairs) (map (lambda (pair) @@ -16,14 +13,22 @@ (define json-object? list?) (define json-list? vector?) + (define (json-object-contains-key? obj key) + (and (assoc (string->symbol key) obj) #t)) + (define (json-null? obj) (eq? obj json-null)) + ;; json->string already defined in chibi json + ;; string->json already defined in chibi json + (define (json-object-ref json key) - (and-let* ((pair (assoc (string->symbol key) json))) - (cdr pair))) + (or (and-let* ((pair (assoc (string->symbol key) json))) + (cdr pair)) + ((json-key-not-found)))) (define json-list-ref vector-ref) + (define json-list-length vector-length) (define (json-object->alist json) (map |