问题标签 [edn]

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.

0 投票
1 回答
77 浏览

clojurescript - cljs.reader/read-string 以随机顺序读取对象的内容

我不明白为什么 cljs.reader/read-string 函数以随机顺序读取我的 edn 文件的内容。这是一个示例文件内容:

这是读取字符串函数的输出:

为什么这会发生在我身上?:)

0 投票
1 回答
64 浏览

clojure - 如何将自定义参数传递给 edn 阅读器?

我遵循clojure代码

我正在传递以下 EDN 文件

我的问题是:当我调用 (getContent "ednfilepath" myCustomObject) 时,会使用 EDN 中定义的集合调用反向阅读器...如何将 myCustomObject 从 getContent 传递给函数 reverse-reader ?

提前感谢您的帮助。

0 投票
1 回答
128 浏览

clojure - 如何在使用 clojure 将 EDN 文件读入 java 对象时避免打印对象哈希码

我已经为自定义标签定义了 EDN 阅读器,它在出现自定义标签时创建新对象。我正在使用 edn/read-string 来读取 EDN 数据。

我的 EDN 文件

当我从 java 打印 getSomeObj 的输出时,它会打印以下输出

我想避免在返回字符串中获取对象哈希码(即#object[com.java.sample.Xyz 0x6731787b)。有没有办法实现它?

0 投票
1 回答
45 浏览

clojure - 在 EDN 中,如何将多个值传递给从其他标记元素返回的标记元素

我有以下 EDN

在 Clojure 中,我为每个内部调用 java 函数的标记元素定义了实现。我有一个要求,我需要将 #abc/getAbc 和 #fgh/getFgh 的返回值作为单独的参数传递给 #xyz/getXyz。在我当前的实现中,#fgh/getFgh 使用“sampleString”调用。随着#fgh/getFgh 的输出,#abc/getAbc 被调用。并通过其输出 #xyz/getXyz 被调用。我的要求是#xyz/getXyz 应该以#abc/getAbc 和#fgh/getFgh 的返回值作为单独的参数来调用。

Clojure 实现

我想将 getXyz 修改为

0 投票
1 回答
63 浏览

clojure - 有没有一种方法可以重用 EDN 中已定义键的值?

有没有办法可以重用 EDN 中定义的键值?

例如:如果我有以下 EDN

当我在 Clojure 中阅读上面的 EDN 时,我想要传递 :abc 的值 'def' 键 value1。但目前 :abc 字符串在我使用 EDN 读取字符串函数读取时传递

0 投票
1 回答
162 浏览

clojure - EDN中'$ % &'之类的符号有什么用?

我是 EDN 的新手,正在阅读 EDN 规范 - https://github.com/edn-format/edn

像“$ % &”这样的 EDN 符号有什么用?在 Clojure 中阅读 EDN 时如何使用它们?

0 投票
1 回答
267 浏览

clojure - 如何在 Clojure EDN 中以不同的顺序执行自定义标签阅读器

我有以下 EDN 文件

我在 Clojure 中定义了自定义标签阅读器,它在内部调用 java 代码

当我使用 edn/read-string 读取 EDN 时,defBuilder 首先执行,它的值被传递给 abcBuilder。

我想在不修改 EDN 的情况下反转执行顺序。我想修改 abcBuilder 代码,这样如果 abcBuilder 中的 java 调用返回一些值,则只执行 defBuilder。我怎样才能做到这一点。

我尝试通过修改代码如下

但这会引发类似“无法解析 someJavaUtilityClass 和参数”的错误。有没有更好的方法来解决这个问题?

0 投票
2 回答
383 浏览

clojure - 如何将 Java 字符串转换为 EDN 对象?

在 Clojure 中,我使用 cheshire ( https://github.com/dakrone/cheshire ) 库的“生成字符串”函数将 EDN 转换为 JSON。

如果我直接使用 Clojure 中的 EDN 数据调用它,它工作正常,即

但是如果我从 Java 调用上面的函数并以 Java 字符串的形式将上面的相同内容传递给它,它就行不通了

我怎样才能解决这个问题?

0 投票
1 回答
373 浏览

clojure - 如何将 EDN 输出转换为定义了自定义阅读器的 JSON

在 Clojure 中,我使用 cheshire ( https://github.com/dakrone/cheshire ) 库的“生成字符串”函数将 EDN 转换为 JSON。

它适用于没有自定义阅读器的 EDN。例如:

但是,如果 EDN 具有调用 java 代码创建新对象的自定义阅读器,则它无法将 EDN 输出转换为 JSON。

例如:

如果 EDN 文件如上所示,它无法生成 JSON 输出,因为 EDN 输出包含创建的对象的哈希码,如

有没有办法从上面的输出中生成 JSON?

提前致谢。

0 投票
1 回答
163 浏览

clojure - 在 ClojureScript 中序列化 JavaScript 对象

如何让 JS 错误对象的编写器通过网络发送?当我这样做(pr-str (js/Error. "OOPS"))时,它给了我"#object[Error Error: OOPS]"。并(js->clj (js/Error. "Oops!"))给出类似#object[Error Error: Oops!]. 我想为 JS 错误创建一个编写器,这样我就可以通过网络(可能是 EDN)发送它们并在另一端反序列化。