我有以下格式的JSON数据:
{"load":{"meta": 12345}}
{"load":{"meta": 54321}}
...
当我尝试用Cheshire加载数据时,我只得到第一行翻译成edn:
的数据。(def read-json-data (parse-string (slurp "data/json_data") true))
=> {:load {:meta 12345}}
这是正确的行为- cheshire/parse-string
解析它能找到的第一个JSON对象。
如果你想把整个文件解析成一个JSON对象,你应该创建一个数组:
[{"load": {"meta": 12345}},
{"load": {"meta": 54321}},
...]
或者,如果您想单独解析每一行,您可以这样做:
(map #(cheshire/parse-string % true)
(line-seq (clojure.java.io/reader "data/json_data")))
(还要注意JSON中的冒号)