diff --git a/src/impl/parser.ts b/src/impl/parser.ts index 462d494..fcae231 100644 --- a/src/impl/parser.ts +++ b/src/impl/parser.ts @@ -482,16 +482,14 @@ export function visit(text: string, visitor: JSONVisitor, options: ParseOptions function parseLiteral(): boolean { switch (_scanner.getToken()) { case SyntaxKind.NumericLiteral: - let value = 0; - try { - value = JSON.parse(_scanner.getTokenValue()); - if (typeof value !== 'number') { - handleError(ParseErrorCode.InvalidNumberFormat); - value = 0; - } - } catch (e) { + const tokenValue = _scanner.getTokenValue(); + let value = Number(tokenValue); + + if (isNaN(value)) { handleError(ParseErrorCode.InvalidNumberFormat); + value = 0; } + onLiteralValue(value); break; case SyntaxKind.NullKeyword: