Assume we're using the following libraries.
Assume the following code exists.
(defun to-camel-case (k)
"Change the symbol `k' to a camelCase string (for JSON serialization)."
(change-case:camel-case (string k)))
(defclass post ()
((blog-id
:initarg :blog-id
:accessor blog-id
:documentation "")
(posted-on
:initarg :posted-on
:accessor posted-on
:documentation "datetime of post")
(title
:initarg :title
:accessor title
:documentation "")
(content
:initarg :content
:accessor content
:documentation "content of post")))
(defparameter p1 (make-instance 'post :blog-id 1 :posted-on "2026-04-18T14:00:00" :title "Hi" :content "Hello"))
(defparameter json (jzon:stringify p1 :coerce-key #'to-camel-case))
(defparameter data (jzon:parse json :key-fn #'change-case:param-case))
(defparameter p2 (new 'post data))
How would you implement new such that p1 and p2 had the same slot values?