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

欢迎!请参阅 关于 页面,了解更多关于如何使用本站的信息。

0
data.json
重标记

调用 (clojure.data.json/read-str (String. (byte-array [0]))) 产生了一个很神秘的错误消息(没有匹配的子句: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

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

...