调用(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,期望"