json-tutorial
json-tutorial copied to clipboard
tutorial02对于0123为为什么不是INVALID_VALUE而是返回LEPT_PARSE_ROOT_NOT_SINGULAR?
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更直观点?
0被解析成了LEPT_NUMBER然后后面还有123,所以是LEPT_PARSE_ROOT_NOT_SINGULAR
因为没有处理前导0的情况,0后面不是小数点或者指数就被当做整数0处理。可以自行处理下,也不难
同样发现这个问题。 根据tutorial01里的定义:
若一个值之后,在空白之后还有其他字符,传回 LEPT_PARSE_ROOT_NOT_SINGULAR。
这个情况还是应该归于 解析到了一个非法值,应该返回 INVALID_VALUE