(defun print-json-simple (value)
(typecase value
- (list (print-json-list (dolist (i value) (print-json-simple i))))
- (hash-table (print-json-map (maphash (lambda (k v)
- (print-json-mapping k
- (print-json-simple v)))
- value)))
+ ((and vector (not string))
+ (print-json-list
+ (dotimes (i (length value)) (print-json-simple (aref value i)))))
+ (null
+ (princ "null"))
+ (list
+ (print-json-map
+ (dolist (i value)
+ (print-json-mapping (car i)
+ (print-json-simple (cdr i))))))
+ (hash-table
+ (print-json-map
+ (maphash (lambda (k v)
+ (print-json-mapping k
+ (print-json-simple v)))
+ value)))
(t
(print-json-itemstart)
(etypecase value