问题标签 [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 回答
1271 浏览

clojure - 将 Clojure 代码序列化和反序列化为 EDN

我正在尝试对 Clojure 代码使用标准序列化,它会忽略空格、注释等。我正在考虑为此使用EDN

根据我阅读的内容,将 s 表达式序列化为 EDN 的标准方法是 through pr-str,这似乎与 Clojure 的大多数构造都很好地配合。但是,这似乎不适用于包含正则表达式的代码(使用哈希字符串读取器宏,如#"\d+")。

我正在使用 Clojure 1.8.0。

有什么建议么?

谢谢!

编辑: 感谢您的回答和评论。我想使用 EDN 的原因是我想处理不受信任的代码。

我的想法是我想阅读这段代码(任何语法上有效的 Clojure 代码),然后通过一些特殊用途的静态分析来确保它符合我认为“安全”的 Clojure 的特定子集,并且只如果符合要求,我会认为执行此代码是安全的。出于这个原因,我想避免load-file,它会立即加载文件,也可能是read-string由于这些警告

0 投票
0 回答
132 浏览

ios - 在 swift usinf MPEDn 库中解析 EDN 格式

我正在尝试使用MPEdn library解析 EDN 格式。我已成功将 MPEDn 库添加到我的项目中。但问题是我无法快速解析 edn 格式。我已经使用类的parseString方法解析了 EDN 字符串MPEdnParser,结果是Any对象类型。现在我无法从解析的对象中读取值。我的代码如下:

任何帮助表示赞赏... :)

0 投票
1 回答
2288 浏览

clojure - Clojure RuntimeException - 标签 db/id 没有读取器功能

当我在 Clojure 中收到此错误时会发生什么?

0 投票
2 回答
171 浏览

parsing - Clojure - 解析 Elasticsearch 查询响应并提取值

我正在寻找解析 Elasticsearch 查询响应并将其转换为我自己的格式。响应可能有嵌套的桶,并且嵌套级别对于每个查询都是可变的。这是结果的简化版本:

我想将 :value 和 :key 提取到这样的结构中:

关于我应该如何去做的任何建议?

编辑:简化所需的格式

0 投票
3 回答
317 浏览

clojure - Clojure - 计算嵌套映射中嵌套键的出现次数?

我有一个像这样的嵌套地图:

我想计算对 [:A :B] 的出现次数,以便在上述情况下,结果为 3。

我最初的想法是用来clojure.walk/postwalk遍历地图并增加一个计数器。

有没有更优化的方法来实现这一目标?

0 投票
1 回答
271 浏览

clojure - yogthos/config 在 CIDER 中获取我的环境,但在 lein with-profile 中运行时没有

在这个简单的演示项目上工作,我从我自己的“配置管理”开始。基本上,将 .edn 文件slurp成一个字符串,然后将其edn/read-string成一个映射。它工作得很好,但后来我进行了集成测试,这需要不同的配置文件。所以我搜索并找到了这个 yogthos/config 东西,它似乎正是为此而制作的。

快速测试,它似乎在做我想要的。在连接到 REPL 服务器的 Emacs 中进行评估,我可以评估感兴趣的配置值。

当我编译文件时,它会打印带有配置值的消息。但是,当我运行lein with-profile dev uberjar时,它会在那里死掉,但有一个例外,

,并且为此添加的我的 println 证实了怀疑:

但是..但是...我确实给了它with-profile dev ..?

lein with-profile dev pprint 输出看起来不错,但我可能不知道要查找什么:

最后,这是来自我的 project.clj:

0 投票
1 回答
171 浏览

node.js - 通过 NPM 脚本在嵌套目录中的多个文件上递归运行 zprint-cli

目标:使用 npm 脚本zprint-clj在嵌套文件夹包中具有适当文件扩展名的每个文件上运行。

zprint-clj每次运行时都需要一个文件名和一个文件名。例如:zprint-clj -i <filein.ext> -o <fileout.ext>

我很难理解如何在具有匹配文件扩展名的每个文件上递归运行命令/脚本。我发现的教程和指南似乎没有处理需要使用 library 命令键入特定文件的库。

我对这个过程还是新手,所以我可能会忽略一些明显的东西。

0 投票
1 回答
477 浏览

python - 使用 :symbols 从 Python 生成 Clojure EDN

我正在尝试使用 EDN 在简单的 Python 服务器和使用 ClojureScript 编写的浏览器内应用程序之间进行通信。

因此,服务器需要为浏览器生成并返回 EDN 格式的块。

我已经安装了https://github.com/swaroopch/edn_format,这似乎是 Python 的推荐 EDN 库。

但我希望能够生成一个使用 Clojure 符号作为键的映射。例如。{:a 1 :b 2}

但是,如果我创建一个 Python 字典{"a":1, "b":2}并将其传递给 dumps 函数,最终的 EDN 会将键保存为字符串,而不是符号。

显然Python中没有:symbols。但是有没有办法说服 edn_format.dumps 将字典字符串键变成它们?或者是否有更好的 Python edn 库可以做到这一点?

0 投票
2 回答
114 浏览

clojure - 如何将 .edn 文件包含为另一个“父”.edn 文件的子集,例如 .xml 文件中的“包含路径”元素?

如何将 .edn 文件的内容包含为另一个 .edn 文件的子集,类似于 XML 中的“包含路径”元素?

更具体地说,可扩展数据表示法 (EDN)是否可以通过类似于 XML 中的“包含路径”元素的路径“包含”文件。

我有一个相当大的 XML 格式的键绑定项目,通过将每个部分分成可以轻松跳转到由“包含路径”元素组成的父文件并对其进行操作的文件,它变得更加易于导航且不那么笨拙。这允许通过注释一行来关闭/打开我的代码的离散部分,并让我通过向上或向下冒泡一行来改变序列。该项目已从 XML 迁移到 EDN 格式,我对使用一个巨大的 .edn 文件感到沮丧。我花了很多时间在缩进、代码折叠、书签……但这就像试图阅读一本印在一张长长的羊皮纸上的书。

我应该提到 .edn 文件被程序(悟空)用来生成一个更加庞大和笨拙的 JSON 文件。不知道这是否对最佳解决方案有任何影响。谢谢。

带有“包含路径”元素的旧 XML“父”文件

新的巨大 EDN 文件试图通过缩进、代码折叠、彩色注释、书签和格式来分解部分

我查看了“包括 EDN 格式的文件”,但也许这确实是一个 Clojure 问题。我不是一个真正有经验的程序员,所以我不确定我是否真的应该查看 Clojure 文档,因为据我了解,edn 是 Clojure 语言的一个子集

代码见图片https://imgur.com/gallery/apjmtWf

理想情况下,我希望有一个由“包含”我的许多较小文件组成的主父文件,以便于导航。

0 投票
2 回答
304 浏览

clojure - 如何评估 edn/阅读列表?

我如何评估这个结果列表?

我想更一般地说,我将如何从符号 -> 函数中获得。这是clojure的正常做法吗?我似乎找不到任何东西。也许我没有使用正确的术语进行搜索。