-
Notifications
You must be signed in to change notification settings - Fork 528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unescaped tab, line feed, carriage return should not be accepted in strings #90
Comments
These are the only checks from JSON_checker that we fail. Rustc-serialize correctly rejects unescaped whitespace in strings. |
Is it a problem if our parser/deserializer is more lenient than the standard, as long as our serializer produces correct json? |
@oli-obk So, you want to guess what the sender wanted to send you? Can be dangerous... |
I think we should aim to accept valid JSON and reject invalid JSON. I would make one exception which is I think it is okay for us to accept types other than list and map at the root level. |
but if accepting valid json requires additional code and conditions, it's additional code we need to maintain and test + it slows down the regular path. If the correct way is faster/easier (like with forbidding trailing commas), then it's fine with me. |
Kind of related, I've been looking at control characters:
|
I've been roaming around, since I'm looking for more universal testing suite for myself.
That's not an exception, both ECMA 404 and RFC 7159 state that JSON text has to conform to the grammar of a JSON value, which permits strings, numbers and and the 3 literals.
I've done this with a LUT and it didn't slow down the regular path at all. The logic is pretty trivial, there isn't much to maintain or test. |
From JSON standard:
The text was updated successfully, but these errors were encountered: