summaryrefslogtreecommitdiff
path: root/dump.lisp
diff options
context:
space:
mode:
authorJuan Manuel Tomás <jtomas1815@gmail.com>2023-02-03 14:39:39 -0300
committerJuan Manuel Tomás <jtomas1815@gmail.com>2023-02-03 14:39:39 -0300
commitfdeb8e5de32f21a4a016b99165d248a7d8c3abde (patch)
treea98a034636d7188dfd0b8c3acde2ff69dfdc5af9 /dump.lisp
parente858144ddf1e50b3a390d33961945a9063d746f0 (diff)
downloadjson-fdeb8e5de32f21a4a016b99165d248a7d8c3abde.tar.gz
json-fdeb8e5de32f21a4a016b99165d248a7d8c3abde.zip
Change api and add object generation
Diffstat (limited to 'dump.lisp')
-rw-r--r--dump.lisp31
1 files changed, 0 insertions, 31 deletions
diff --git a/dump.lisp b/dump.lisp
deleted file mode 100644
index d4f3fff..0000000
--- a/dump.lisp
+++ /dev/null
@@ -1,31 +0,0 @@
-(in-package #:json)
-
-(defun to-string (value)
- (defun indent (str level)
- (concatenate 'string (make-string (* 4 level) :initial-element #\Space) str))
- (defun to-string-rec (value level)
- (cond ((stringp value)
- (format nil "\"~a\"" value))
- ((symbolp value)
- (string-downcase (symbol-name value)))
- ((arrayp value)
- (format nil
- "[~&~{~a~^,~&~}]"
- (map 'list (lambda (x) (indent (to-string-rec x (1+ level)) level))
- value)))
- ((hash-table-p value)
- (let (items)
- (maphash (lambda (k v)
- (push (indent (format nil "\"~a\": ~a" k (to-string-rec v (1+ level))) level)
- items))
- value)
- (format nil "{~&~{~a~^,~&~}}" items)))
- (t value)))
- (to-string-rec value 0))
-
-(defun to-file (value filename)
- (with-open-file (s filename
- :direction :output
- :if-exists :supersede
- :if-does-not-exist :create)
- (princ (to-string value) s) t))