1
我想在Common Lisp中获取JSON导入。我想出了如何从JSON字符串中解码对象,但我不知道如何访问返回的对象的属性。为了解码一个字符串(和结果存储在*** tempjson **),我这样做:如何访问通过cl-json从JSON解码的对象?
(defun test-json()
(with-input-from-string
(s "{\"foo\": [1, 2, 3], \"bar\": true, \"baz\": \"!\"}")
(defparameter *tempjson* (json:decode-json s))))
如何访问* tempjson *数据。例如,我怎样才能得到属性值foo属性?
您不清楚您要问什么。如果你可以传递一个流到decode-json,你能不能通过一个由open-file创建的流? –
我不完全明白你的意思。我试图在解码后得到foo的值。例如,如果我要使用散列表,它将是(gethash'foo * tempjson *),但我不知道在这种情况下的等价物。 – phlie
您的问题标题是“使用cl-json Common Lisp解码JSON文件”。它看起来像答案会像'(with-open-file(s“some-file”)(json:decode-json s))''。在你的问题中,你说你“似乎无法访问创建的JSON文件”。你在说什么文件? '* tempjson *'不是一个文件,它是一个变量,而且你没有向我们显示它的价值。如果你运行'test-json'然后评估'* tempjson *',你会得到什么? –