summaryrefslogtreecommitdiff
path: root/lib/zambyte/meta/guile-json.scm
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2023-02-16 09:13:14 -0500
committerRobby Zambito <contact@robbyzambito.me>2023-02-16 09:13:14 -0500
commit61660091e2d05281791b24e775c5fdde93fd93df (patch)
treee64117fd4d22132a93351beb231b1fdabbda8d25 /lib/zambyte/meta/guile-json.scm
parentc6fb4484e22ff2cb35cdfd9c7d6faa9ef775eb35 (diff)
parent73a0cba3f4d4fa825a21332fbcc159e68cd3a1ea (diff)
Merge branch 'master' into json-records
Diffstat (limited to 'lib/zambyte/meta/guile-json.scm')
-rw-r--r--lib/zambyte/meta/guile-json.scm28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/zambyte/meta/guile-json.scm b/lib/zambyte/meta/guile-json.scm
new file mode 100644
index 0000000..1e41f9c
--- /dev/null
+++ b/lib/zambyte/meta/guile-json.scm
@@ -0,0 +1,28 @@
+(import (json)
+ (srfi 1))
+(begin
+ (define json-object list)
+ (define json-list vector)
+ (define json-null 'null)
+ (define json-object? list?)
+ (define json-list? vector?)
+
+ (define (json-null? obj)
+ (eq? obj json-null))
+
+ (define (json-object-cointains-key? obj key)
+ (and (assoc key obj) #t))
+
+ (define string->json json-string->scm)
+ (define json->string scm->json-string)
+
+ (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))