问题标签 [cheshire]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - 如何调整来自 next.jdbc 的 IReduceInit 以使用 cheshire 将 JSON 流式传输到使用 ring 的 HTTP 响应
tl;博士如何将 IReduceInit 转换为转换值的惰性序列
我有一个数据库查询,它产生了一个相当大的数据集,用于在客户端上进行实时旋转(百万或两行,25 个属性 - 对于现代笔记本电脑来说没问题)。
我的(简化的)堆栈是调用 clojure.jdbc 来获取(我认为是惰性的)结果行序列。我可以通过 ring-json 中间件将其作为主体传递出去,从而将其序列化。ring-json 在堆上构建响应字符串存在问题,但是从 0.5.0 开始可以选择将响应流式传输出去。
我通过分析几个失败案例发现,实际上 clojure.jdbc 在将其返回之前将整个结果集实现在内存中。没问题!reducible-query
我决定转向新的 next.jdbc,而不是在那个库中工作。
next.jdbc 中的关键操作是plan
返回一个 IReduceInit,我可以使用它来运行查询并获取结果集...
然而,这实现了整个结果集,并且在上述情况下会给我所有的 id 预先和内存。对一个人来说不是问题,但我通常有很多。
如果我给出一个起始值,我可以减少 IReduceInit 计划,所以我可以在减少函数中进行输出......(谢谢@amalloy)
...但理想情况下,我想在对它们应用转换函数后将此 IReduceInit 转换为值的惰性序列,因此我可以将它们与 ring-json 和 cheshire 一起使用。我没有看到任何明显的方法。
clojure - 如何将 Java 字符串转换为 EDN 对象?
在 Clojure 中,我使用 cheshire ( https://github.com/dakrone/cheshire ) 库的“生成字符串”函数将 EDN 转换为 JSON。
如果我直接使用 Clojure 中的 EDN 数据调用它,它工作正常,即
但是如果我从 Java 调用上面的函数并以 Java 字符串的形式将上面的相同内容传递给它,它就行不通了
我怎样才能解决这个问题?
clojure - 如何将 EDN 输出转换为定义了自定义阅读器的 JSON
在 Clojure 中,我使用 cheshire ( https://github.com/dakrone/cheshire ) 库的“生成字符串”函数将 EDN 转换为 JSON。
它适用于没有自定义阅读器的 EDN。例如:
但是,如果 EDN 具有调用 java 代码创建新对象的自定义阅读器,则它无法将 EDN 输出转换为 JSON。
例如:
如果 EDN 文件如上所示,它无法生成 JSON 输出,因为 EDN 输出包含创建的对象的哈希码,如
有没有办法从上面的输出中生成 JSON?
提前致谢。
clojure - 如何使用 Cheshire 自定义编码器以 JSON 格式打印 EDN 输出
我是 Clojure 的新手,我正在尝试使用针对 java 中定义的类的 Cheshire 自定义编码器将 EDN 输出打印为有效的 JSON 格式。
这会生成以下输出:
我想以正确的 JSON 格式打印它,如下所示。我怎样才能实现它?
提前致谢!
json - 在 Clojure 中编码为 JSON 时如何表示非标准 java 对象?
我有一个标准的clojure地图。键是关键字,值是任意值。它们可以是nil
、数字、字符串或任何其他类型的 JVM 对象/类。
我需要知道如何将此映射编码为 JSON,以便“正常”值映射到通常的 JSON 值(例如关键字 -> 字符串、整数 -> JSON 数字等),而任何其他类的值映射到这些值的字符串表示形式,如下所示:
如此编码:
我想这样做是因为我的程序是一个 CLI 解析库,并且我正在与库的调用者一起构建这个映射,所以我不完全知道其中将包含哪些类型的数据。但是,我想将它打印到屏幕上,以帮助调用者进行调试。我曾试图天真地将这张地图提供给 cheshire,但是当我这样做时,cheshire 一直因这个错误而窒息:
奖励:我正在努力减少我的依赖计数,并且我已经将cheshire作为我的 JSON 库进行了审查,但是如果你能找到一种方法在没有它的情况下执行上述操作,则满分。
json - 使用 Cheshire 解析为 json - generate-string 和 parse-string
我正在尝试导出 json-schema 以在 javascript 中的 Clojure 之外使用。我能够生成这个:
这对 Clojure 来说很好
使用使用生成字符串的柴郡,我可以得到:
这基本上是我想要的,但没有引号。我在上面尝试了 Cheshire 的parse-string,我得到:
更接近,但它的冒号被剥离了。我想
我觉得这应该很容易,但我错过了一些东西。如果没有以下内容,我看不出它是如何有效的 json:
如何使用冒号创建 json?