aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/Google.Protobuf/JsonTokenizer.cs
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #941 from jskeet/recursion-limitJan Tattermusch2015-11-051-0/+27
|\ | | | | Add recursion limit handling to JSON parsing.
| * Reimplement JSON recursion by detecting the depth in the tokenizer.Jon Skeet2015-11-051-0/+27
| | | | | | | | Added a TODO around a possible change to the tokenizer API, changing PushBack(token) into just Rewind() or something similar.
* | Created a new exception for JSON failures.Jon Skeet2015-11-051-16/+26
|/ | | | | | This is only thrown directly by JsonTokenizer, but surfaces from JsonParser as well. I've added doc comments to hopefully make everything clear. The exception is actually thrown by the reader within JsonTokenizer, in anticipation of keeping track of the location within the document, but that change is not within this PR.
* Implement JSON parsing in C#.Jon Skeet2015-11-031-0/+633
This includes all the well-known types except Any. Some aspects are likely to require further work when the details of the JSON parsing expectations are hammered out in more detail. Some of these have "ignored" tests already. Note that the choice *not* to use Json.NET was made for two reasons: - Going from 0 dependencies to 1 dependency is a big hit, and there's not much benefit here - Json.NET parses more leniently than we'd want; accommodating that would be nearly as much work as writing the tokenizer This only really affects the JsonTokenizer, which could be replaced by Json.NET. The JsonParser code would be about the same length with Json.NET... but I wouldn't be as confident in it.