[bknr-cvs] hans changed trunk/libraries/yason/

BKNR Commits bknr at bknr.net
Thu Nov 27 09:36:40 UTC 2008


Revision: 4084
Author: hans
URL: http://bknr.net/trac/changeset/4084

Add encode-array-elementS and encode-object-elementS convenience functions.

U   trunk/libraries/yason/encode.lisp
U   trunk/libraries/yason/package.lisp

Modified: trunk/libraries/yason/encode.lisp
===================================================================
--- trunk/libraries/yason/encode.lisp	2008-11-26 21:28:07 UTC (rev 4083)
+++ trunk/libraries/yason/encode.lisp	2008-11-27 09:36:39 UTC (rev 4084)
@@ -176,6 +176,11 @@
   (next-aggregate-element)
   (encode object (output-stream *json-output*)))
 
+(defun encode-array-elements (&rest objects)
+  "Encode OBJECTS, a list of JSON encodeable object, as array elements."
+  (dolist (object objects)
+    (encode-array-element object)))
+
 (defun encode-object-element (key value)
   "Encode KEY and VALUE as object element to the last JSON object
 opened with WITH-OBJECT in the dynamic context.  KEY and VALUE are
@@ -187,6 +192,11 @@
   (encode value (output-stream *json-output*))
   value)
 
+(defun encode-object-elements (&rest elements)
+  "Encode plist ELEMENTS as object elements."
+  (loop for (key value) on elements by #'cddr
+       do (encode-object-element key value)))
+
 (defmacro with-object-element ((key) &body body)
   "Open a new encoding context to encode a JSON object element.  KEY
   is the key of the element.  The value will be whatever BODY

Modified: trunk/libraries/yason/package.lisp
===================================================================
--- trunk/libraries/yason/package.lisp	2008-11-26 21:28:07 UTC (rev 4083)
+++ trunk/libraries/yason/package.lisp	2008-11-27 09:36:39 UTC (rev 4084)
@@ -30,7 +30,9 @@
    #:no-json-output-context
    #:with-array
    #:encode-array-element
+   #:encode-array-elements
    #:with-object
    #:encode-object-element
+   #:encode-object-elements
    #:with-object-element
    #:with-response))





More information about the Bknr-cvs mailing list