2024年Clojure调查中分享您的想法!

欢迎!请查看关于页面以了解更多关于此功能的信息。

0
data.json
重标记

调用(clojure.data.json/read-str (String. (byte-array [0])))生成一个非常模糊的错误信息(No matching clause: 0)。我希望能为用户提供更有效的错误信息。

当前next-token实现是

(defn- next-token [^PushbackReader stream]
  (loop [c (.read stream)]
    (if (< 32 c)
      (int c)
      (codepoint-case (int c)
        :whitespace (recur (.read stream))
        -1 -1))))

将最后一行的-1 -1修改为(int c)将导致更帮助性的消息
(clojure.data.json/read-str (String. (byte-array [0]))) -> JSON错误(意外的字符):\0
(clojure.data.json/read-str (String. (byte-array [123 0]))) -> JSON错误(在对象中找到非字符串的键),发现\0,期望"

1 个答案

0

被选中
 
最佳答案

登录为 https://clojure.atlassian.net/browse/DJSON-56

非常重要,我们需要检查这不会损害性能。

...