问题标签 [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.
clojure - 将 Clojure 代码序列化和反序列化为 EDN
我正在尝试对 Clojure 代码使用标准序列化,它会忽略空格、注释等。我正在考虑为此使用EDN。
根据我阅读的内容,将 s 表达式序列化为 EDN 的标准方法是 through pr-str
,这似乎与 Clojure 的大多数构造都很好地配合。但是,这似乎不适用于包含正则表达式的代码(使用哈希字符串读取器宏,如#"\d+"
)。
我正在使用 Clojure 1.8.0。
有什么建议么?
谢谢!
编辑: 感谢您的回答和评论。我想使用 EDN 的原因是我想处理不受信任的代码。
我的想法是我想阅读这段代码(任何语法上有效的 Clojure 代码),然后通过一些特殊用途的静态分析来确保它符合我认为“安全”的 Clojure 的特定子集,并且只如果符合要求,我会认为执行此代码是安全的。出于这个原因,我想避免load-file
,它会立即加载文件,也可能是read-string
由于这些警告。
ios - 在 swift usinf MPEDn 库中解析 EDN 格式
我正在尝试使用MPEdn library解析 EDN 格式。我已成功将 MPEDn 库添加到我的项目中。但问题是我无法快速解析 edn 格式。我已经使用类的parseString
方法解析了 EDN 字符串MPEdnParser
,结果是Any
对象类型。现在我无法从解析的对象中读取值。我的代码如下:
任何帮助表示赞赏... :)
clojure - Clojure RuntimeException - 标签 db/id 没有读取器功能
当我在 Clojure 中收到此错误时会发生什么?
parsing - Clojure - 解析 Elasticsearch 查询响应并提取值
我正在寻找解析 Elasticsearch 查询响应并将其转换为我自己的格式。响应可能有嵌套的桶,并且嵌套级别对于每个查询都是可变的。这是结果的简化版本:
我想将 :value 和 :key 提取到这样的结构中:
关于我应该如何去做的任何建议?
编辑:简化所需的格式
clojure - Clojure - 计算嵌套映射中嵌套键的出现次数?
我有一个像这样的嵌套地图:
我想计算对 [:A :B] 的出现次数,以便在上述情况下,结果为 3。
我最初的想法是用来clojure.walk/postwalk
遍历地图并增加一个计数器。
有没有更优化的方法来实现这一目标?
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:
node.js - 通过 NPM 脚本在嵌套目录中的多个文件上递归运行 zprint-cli
目标:使用 npm 脚本zprint-clj
在嵌套文件夹包中具有适当文件扩展名的每个文件上运行。
zprint-clj
每次运行时都需要一个文件名和一个文件名。例如:zprint-clj -i <filein.ext> -o <fileout.ext>
我很难理解如何在具有匹配文件扩展名的每个文件上递归运行命令/脚本。我发现的教程和指南似乎没有处理需要使用 library 命令键入特定文件的库。
我对这个过程还是新手,所以我可能会忽略一些明显的东西。
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 库可以做到这一点?
clojure - 如何将 .edn 文件包含为另一个“父”.edn 文件的子集,例如 .xml 文件中的“包含路径”元素?
如何将 .edn 文件的内容包含为另一个 .edn 文件的子集,类似于 XML 中的“包含路径”元素?
更具体地说,可扩展数据表示法 (EDN)是否可以通过类似于 XML 中的“包含路径”元素的路径“包含”文件。
我有一个相当大的 XML 格式的键绑定项目,通过将每个部分分成可以轻松跳转到由“包含路径”元素组成的父文件并对其进行操作的文件,它变得更加易于导航且不那么笨拙。这允许通过注释一行来关闭/打开我的代码的离散部分,并让我通过向上或向下冒泡一行来改变序列。该项目已从 XML 迁移到 EDN 格式,我对使用一个巨大的 .edn 文件感到沮丧。我花了很多时间在缩进、代码折叠、书签……但这就像试图阅读一本印在一张长长的羊皮纸上的书。
我应该提到 .edn 文件被程序(悟空)用来生成一个更加庞大和笨拙的 JSON 文件。不知道这是否对最佳解决方案有任何影响。谢谢。
新的巨大 EDN 文件试图通过缩进、代码折叠、彩色注释、书签和格式来分解部分
我查看了“包括 EDN 格式的文件”,但也许这确实是一个 Clojure 问题。我不是一个真正有经验的程序员,所以我不确定我是否真的应该查看 Clojure 文档,因为据我了解,edn 是 Clojure 语言的一个子集
代码见图片https://imgur.com/gallery/apjmtWf
理想情况下,我希望有一个由“包含”我的许多较小文件组成的主父文件,以便于导航。
clojure - 如何评估 edn/阅读列表?
我如何评估这个结果列表?
我想更一般地说,我将如何从符号 -> 函数中获得。这是clojure的正常做法吗?我似乎找不到任何东西。也许我没有使用正确的术语进行搜索。