首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数组转换为哈希映射

如何将数组转换为哈希映射
EN

Stack Overflow用户
提问于 2020-10-26 06:59:56
回答 3查看 96关注 0票数 0

我有一根绳子:

代码语言:javascript
复制
{:id 1, :name "Ab Bc Cd", :sex "M", :birth "01.01.1999", :address "Street 1", :oms "0001"}

我需要把它转换成HashMap但是

代码语言:javascript
复制
(hash-map my-str)

返回{},因此我拆分了它:

代码语言:javascript
复制
(s/split my-str ",")

然后它又回来了

代码语言:javascript
复制
[:id 1  :name "Ab Bc Cd"  :sex "M"  :birth "01.01.1999"  :address "Street 1"  :oms "0001"]

然后

代码语言:javascript
复制
for [x my-arr]
(hash-map x)

返回

代码语言:javascript
复制
({} {} {} {} {} {})

我该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-26 07:14:03

如果您有意获得此字符串,则请使用

clojure.edn/read-string

例如。

代码语言:javascript
复制
user=> (require 'clojure.edn)
nil
user=> (clojure.edn/read-string (slurp "x.edn"))
{:id 1, :name "Ab Bc Cd", :sex "M", :birth "01.01.1999", :address "Street 1", :oms "0001"}
票数 7
EN

Stack Overflow用户

发布于 2020-10-26 08:00:25

你的榜样就快到了!

你可以打个电话给

代码语言:javascript
复制
(into {} your-result-so-far)

很多人都养成了寻找它的习惯。

票数 2
EN

Stack Overflow用户

发布于 2020-10-27 17:08:46

最短的方法将是clojure.coreread-string --从字符串中执行read,并执行用于构建对象的命令:

代码语言:javascript
复制
(def s "{:id 1, :name \"Ab Bc Cd\", :sex \"M\", :birth \"01.01.1999\", :address \"Street 1\", :oms \"0001\"}")
(read-string s)
;; => {:id 1, :name "Ab Bc Cd", :sex "M", :birth "01.01.1999", :address "Street 1", :oms "0001"}

文件上说:

从字符串中读取一个对象。可选地包括读中指定的读取器选项。请注意,读字符串可以执行代码(由读-eval控制),因此应该只用于受信任的源。对于数据结构互操作,请使用clojure.edn/read-string

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64532672

复制
相关文章

相似问题

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