首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SQL结果转换为json

将SQL结果转换为json
EN

Stack Overflow用户
提问于 2014-04-05 15:45:00
回答 1查看 492关注 0票数 0

我正在使用SQL在DB上运行一些简单的示例,并试图使用Cheshire将其转换为JSON。

这很好的工作,当我只有一个记录返回,但抛出一个错误,当我有超过一个结果。

以下是两个功能:

代码语言:javascript
复制
(defn get-room [id]
    (first (select room
             (where {:id id})
             (limit 1))))

(defn get-rooms []
    (select room))

和数据:

代码语言:javascript
复制
(def x get-rooms)

(def y (get-room 1))

X是testproj.models.db类型的:

代码语言:javascript
复制
(x)
=> [{:created_on "2014-04-05 13:19:47", :id 1, :description "Room 1"} {:created_on "2014-04-05 13:20:17", :id 2, :description "Room 2"} {:created_on "2014-04-05 13:20:20", :id 3, :description "Room 3"}]

因为y是一个Hashmap:

代码语言:javascript
复制
(pr-str y)
=> "{:created_on \"2014-04-05 13:19:47\", :id 1, :description \"Room 1\"}"

试图皈依Json:

代码语言:javascript
复制
(cheshire.core/generate-string x)
JsonGenerationException Cannot JSON encode object of class: class testproj.models.db$get_rooms: testproj.models.db$get_rooms@507501ff  cheshire.generate/generate (generate.clj:147)

(cheshire.core/generate-string y)
=> "{\"created_on\":\"2014-04-05 13:19:47\",\"id\":1,\"description\":\"Room 1\"}"

为什么korma会根据记录的数量返回不同的类型(这将帮助我更好地理解这一点),其次--我应该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-05 15:50:44

好像你错过了一个功能电话。试试这个:

代码语言:javascript
复制
(cheshire.core/generate-string (x))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22883029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档