Lisp: Change Lisp-to-JSON conventions.
[distorted-ansible] / bin / ansible-inventory
index 6ffb17a..25ad961 100755 (executable)
 
 (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