json-tutorial icon indicating copy to clipboard operation
json-tutorial copied to clipboard

tutorial02对于0123为为什么不是INVALID_VALUE而是返回LEPT_PARSE_ROOT_NOT_SINGULAR?

Open hotaery opened this issue 4 years ago • 3 comments

    TEST_ERROR(LEPT_PARSE_ROOT_NOT_SINGULAR, "0123"); /* after zero should be '.' or nothing */
    TEST_ERROR(LEPT_PARSE_ROOT_NOT_SINGULAR, "0x0");
    TEST_ERROR(LEPT_PARSE_ROOT_NOT_SINGULAR, "0x123");

既然是不合法的json值是不是返回INVALID_VALUE更直观点?

hotaery avatar Sep 12 '20 10:09 hotaery

0被解析成了LEPT_NUMBER然后后面还有123,所以是LEPT_PARSE_ROOT_NOT_SINGULAR

ZCKun avatar Nov 01 '20 11:11 ZCKun

因为没有处理前导0的情况,0后面不是小数点或者指数就被当做整数0处理。可以自行处理下,也不难

airspuer avatar Nov 22 '20 04:11 airspuer

同样发现这个问题。 根据tutorial01里的定义:

若一个值之后,在空白之后还有其他字符,传回 LEPT_PARSE_ROOT_NOT_SINGULAR。

这个情况还是应该归于 解析到了一个非法值,应该返回 INVALID_VALUE

Taowyoo avatar Dec 28 '20 00:12 Taowyoo