在我的一些测试中,我比较了一些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