glideapps/quicktype

Find a better JSON parser or implement our own

Open

#646 opened on Mar 8, 2018

View on GitHub
 (12 comments) (2 reactions) (0 assignees)TypeScript (10,867 stars) (968 forks)batch import
good first issue

Description

Required features:

  • Streaming. We need to process files larger than V8 strings allow.
  • Preserve property order.
  • Good and actionable error messages. Our users often have issues with invalid JSON.
  • Recover from common errors.
  • Distinguish between integers and floating point numbers.
  • Span for each non-symbol token - line number and column of start and end.

Common errors:

  • Unquoted keys: { foo: "bar" }
  • Superfluous commas: [1, 2, 3,]
  • Wrong delimiter: [ "foo": "bar" ], { 1, 2, 3 }

Other easily recoverable errors:

  • = (or anything else) instead of : in objects: { "foo"="bar" }
  • Number format stuff, such as no digits before point (.3), leading zeros (0123), hexadecimals (0xdeadbeef)

Contributor guide