欢迎!请查阅关于页面以获取更多关于此工作方式的信息。
当运行(json/write-str {:a 1 "a" 2})时,输出为;; => "{\"a\":1,\"a\":2}\"。应有一种验证来断言不存在重复键吗?还是由用户自己:1. 不要混合关键字键和字符串键,2. 验证是否存在重复键?
(json/write-str {:a 1 "a" 2})
;; => "{\"a\":1,\"a\":2}\"
所有json键都是字符串,因此默认的key-fn将所有键值字符串化。通常情况下,大多数使用json写入函数的情况都会传递一个包含所有关键字或所有字符串键的映射 - 在这些情况下,不可能出现任何重复键。
虽然可以转换键和/或跟踪已写入的键,但这两种方法由于它们通常不是必需的,而变得非常昂贵。因此,在存在重复的可能性之前,您应确保对象字符串化的键是唯一的。