Как работать с необработанными данными в Hunchentoot
Я работаю над Lisp API, используя RESTAS, Hunchentoot и CL-JSON. У меня есть маршрут, определенный следующим образом:
(define-route user/register ("/user/register" :method :post)
(let* ((raw-data (hunchentoot:raw-post-data :force-text t))
(params (json:decode-json-from-string)))
(format t "List of parameters: ~a~%" params)
))
Теперь я использую Postman для отправки запросов HTTP POST с некоторыми примерами данных JSON в теле запроса, которое выглядит следующим образом:
{
"first_name": "John",
"last_name": "Doe",
"login": "jdoe",
"password": "lalala",
"email": "jdoe@ietf.org",
"organization": "IETF"
}
Тело запроса четко проходит, так как я могу вывести его на экран, но decode-json
часть оставляет меня с ошибкой 500 сервера. Я пробовал некоторые комбинации, которые казались разумными, но я не смог разобрать этот JSON. В идеале я бы хотел разобрать plist
, alist
или хэш-таблица. Любая помощь с благодарностью.
1 ответ
Решение