glideapps/quicktype

Find a better JSON parser or implement our own

Chiusa

#646 aperta il 8 mar 2018

 (12 commenti) (2 reazioni) (0 assegnatari)TypeScript (968 fork)batch import
good first issue

Metriche repository

Star
 (10.867 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

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)

Guida contributor