glideapps/quicktype

Find a better JSON parser or implement our own

Open

#646 aperta il 8 mar 2018

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

Metriche repository

Star
 (10.867 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

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