Clojure json 比较
Clojure json comparing
在我的一些测试中,我正在比较一些 http 调用之间的 json 结果,今天我只是比较字符串,这太幼稚而且不可靠,例如,如果订单发生变化。
你能推荐一下如何比较两个元素顺序不同的 json 吗:
{
"k1":"v1",
"k2":"v2"
}
和
{
"k2":"v2",
"k1":"v1"
}
谢谢
奥德
将 JSON 主体解析为 Clojure 数据结构,例如 cheshire
并比较它们:
(ns my.ns
(:require
[cheshire.core :as json]))
(def body1
"{\"a\": 1, \"b\": 2}")
(def body2
"{\"b\": 2, \"a\": 1}")
(= body1 body2)
;; => false
(let [keywordize-keys? true]
(= (json/decode body1 keywordize-keys?)
(json/decode body2 keywordize-keys?)))
;; => true
在我的一些测试中,我正在比较一些 http 调用之间的 json 结果,今天我只是比较字符串,这太幼稚而且不可靠,例如,如果订单发生变化。 你能推荐一下如何比较两个元素顺序不同的 json 吗:
{
"k1":"v1",
"k2":"v2"
}
和
{
"k2":"v2",
"k1":"v1"
}
谢谢 奥德
将 JSON 主体解析为 Clojure 数据结构,例如 cheshire
并比较它们:
(ns my.ns
(:require
[cheshire.core :as json]))
(def body1
"{\"a\": 1, \"b\": 2}")
(def body2
"{\"b\": 2, \"a\": 1}")
(= body1 body2)
;; => false
(let [keywordize-keys? true]
(= (json/decode body1 keywordize-keys?)
(json/decode body2 keywordize-keys?)))
;; => true