欢迎!有关如何运作的更多信息,请参阅 关于 页面。
当运行 (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 键都是字符串,因此默认的键函数会将所有键值字符串化。一般来说,大多数使用 json 写入函数的情况将传递一个具有全部关键字键或全部字符串键的映射 - 在这种情况下,不可能发生任何重复键。
虽然可以将键进行转换和/或跟踪已写入的键,但是这两种方法都有点昂贵,因为通常不需要它们。因此,如果有可能发生重复,请在调用写之前确保对象的字符串化键是唯一的。