Используя библиотеку cl-json
, я пытаюсь добавить запись {"main": "build/electron.js"}
в файл package.json
.
Вот моя попытка:
(let ((package-json-pathname (merge-pathnames *app-pathname* "package.json")))
(let
((new-json (with-open-file (package-json package-json-pathname :direction :input :if-does-not-exist :error)
(let ((decoded-package (json:decode-json package-json)))
(let ((main-entry (assoc :main decoded-package)))
(if (null main-entry)
(push (:main . "build/electron.js") decoded-package)
(setf (cdr main-entry) "build/electron.js"))
decoded-package)))))
(with-open-file (package-json package-json-pathname :direction :output :if-exists :supersede)
(json:encode-json new-json package-json))
)
)
Код завершается с ошибкой в строке (push (:main . "build/electron.js") decoded-package)
, жалуясь, что (:main . "build/electron.js")
не является допустимым списком Что, честно, но как правильно добавить запись ak / v в файл. json с помощью этой библиотеки?