我有以下格式的JSON数据:
{"load":{"meta": 12345}}
{"load":{"meta": 54321}}
...当我尝试用柴郡加载数据时,我只返回转换为edn的第一行数据:
(def read-json-data (parse-string (slurp "data/json_data") true))
=> {:load {:meta 12345}}如果有人已经解决了这一点,并能帮助显示如何阅读整个文件将是非常感谢的。
发布于 2015-05-18 20:44:34
这是正确的行为- 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中的冒号。)
https://stackoverflow.com/questions/30311584
复制相似问题