如何从 Array 转换为 Hashmap
How to convert from Array to Hashmap
我有一个字符串:
{:id 1, :name "Ab Bc Cd", :sex "M", :birth "01.01.1999", :address "Street 1", :oms "0001"}
我需要将它转换为 HashMap 但是
(hash-map my-str)
returns{}
所以我把它分开了:
(s/split my-str ",")
它returns
[:id 1 :name "Ab Bc Cd" :sex "M" :birth "01.01.1999" :address "Street 1" :oms "0001"]
然后
for [x my-arr]
(hash-map x)
returns
({} {} {} {} {} {})
我该怎么做?
如果你有意得到这个字符串,那么使用
例如
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"}
您的示例就快完成了!
你可以通过调用
来完成它
(into {} your-result-so-far)
into 出现了很多你养成了寻找它的习惯。
最短的方法是 clojure.core
的 read-string
- 它 read
来自字符串并执行构建对象的命令:
(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"}
文档说:
Reads one object from the string s. Optionally
include reader options, as specified in read. Note that read-string
can execute code (controlled by read-eval), and as such should be
used only with trusted sources. For data structure interop use
clojure.edn/read-string
我有一个字符串:
{:id 1, :name "Ab Bc Cd", :sex "M", :birth "01.01.1999", :address "Street 1", :oms "0001"}
我需要将它转换为 HashMap 但是
(hash-map my-str)
returns{} 所以我把它分开了:
(s/split my-str ",")
它returns
[:id 1 :name "Ab Bc Cd" :sex "M" :birth "01.01.1999" :address "Street 1" :oms "0001"]
然后
for [x my-arr]
(hash-map x)
returns
({} {} {} {} {} {})
我该怎么做?
如果你有意得到这个字符串,那么使用
例如
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"}
您的示例就快完成了!
你可以通过调用
来完成它(into {} your-result-so-far)
into 出现了很多你养成了寻找它的习惯。
最短的方法是 clojure.core
的 read-string
- 它 read
来自字符串并执行构建对象的命令:
(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"}
文档说:
Reads one object from the string s. Optionally include reader options, as specified in read. Note that read-string can execute code (controlled by read-eval), and as such should be used only with trusted sources. For data structure interop use clojure.edn/read-string