如何使用elisp惯用地转换某些文本?

Squ*_*dly 3 emacs elisp

我有一些json,我想在emacs中处理.我发现并使用了elisp库从json中提取所需的内容,我想用我提取的elisp等价替换json.

这就是我写的:

(defun extract-foo (start end)
  "Extract the foo field from a json object in the region"
  (interactive "r")
  (let ((my_json (cdr (assoc 'FOO  (json-read-from-string (buffer-substring-no-properties start end))))))
    (delete-region start end)
    (SOMETHING) 
))
Run Code Online (Sandbox Code Playgroud)

我陷入了困境.我似乎无法找到一种方法将my_json的内容写入标记处的缓冲区.我能想到的唯一方法是将文本保存到临时缓冲区,然后再保存(insert-buffer).这对我来说似乎过分了.

我如何在elisp中以惯用方式执行此操作?

eve*_*_jr 5

写回JSON部分

(insert (format "%s" (json-encode my-json)))
Run Code Online (Sandbox Code Playgroud)

写回elisp:

(insert (format "%s" my-json))
Run Code Online (Sandbox Code Playgroud)

请注意,在变量命名中使用下划线与常规相反.