DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Newsletter
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Building a Reddit Scraper in Go: JSON Listings, Pagination, Rate Limits, and Where It Breaks
  • Exploring the DBMS_DEVELOPER Package: JSON Metadata for Oracle Objects
  • When TypeScript Types Meet Untrusted AI: Building Type-Safe LLM Pipelines With Runtime Validation
  • Replacing JSON With Protobuf in Your Microservice Mesh: A Zero-Downtime Migration Blueprint

Trending

  • How to Build Your Own AI SRE From Scratch
  • How to Migrate From C/C++ to Rust: A Practical Guide for Embedded IoT Systems
  • Stop Writing Database Migration Scripts: Declarative Schema Sync for Java
  • Architecture Review Boards for Generative AI: A Framework for Governance, Risk Management, and Responsible Adoption

Draft This article hasn't been published, so readers can't see it.

In moderation This article is waiting for review, so readers can't see it yet.

Deleted This article has been deleted, so readers can't see it.

  1. DZone
  2. Coding
  3. Languages
  4. SyntaxError: JSON.parse: bad parsing

SyntaxError: JSON.parse: bad parsing

Tired of getting this annoying error when your parsing your JSON? Read on to learn how!

By 
Deeksha Agarwal
·
Feb. 25, 19 · Tutorial
Post on X (opens in a new tab) Share on LinkedIn (opens in a new tab)
63.0K Views

Join the DZone community Save articles, join the discussion, and download Refcards and Trend Reports with a free account.

Join for free Already a member? Log in

JSON, or JavaScript Object Notation, is a ubiquitous data format used by all sorts of mobile and web apps for asynchronous browser-server communication. JSON is an extremely popular data format, very easy to work with, compatible with every major programming language, and is supported by every major browser. However, just like any programming language, it throws a lot of errors when it decides that today is not going to be your day.

JSON.Parse Syntax Errors

In most web applications, nearly all data transferred from a web server is transmitted in a string format. To convert that string into JSON, we use the JSON.parse() function, and this is the main function that throws errors. Nearly all JSON.parse errors are a subset of the SyntaxError error type. The debugging console throws around 32 different error messages when you mess up your JSON data. And some of them are very tricky to debug; and yes I am talking about you unexpected non-whitespace character after JSON data.

Why the SyntaxError Horror?

SyntaxError is an inherited object of the main error object The main reason behind the error is usually a mistake in the JSON file syntax. You mess up and put a “ instead of a ‘ and you invite to face the SyntaxError JSON.parse: unexpected character.

Just like every programming language, a JSON file has a fixed syntax. Small syntax errors throws errors. For example, in the following code, I forgot to remove a trailing comma

JSON.parse('[a,b, c, d, e, f,]');

Error1

Similarly, in this example, I forgot to add the final } character.

JSON.parse('{"LambdaTest": 1,');

error2

How to Catch the Error Before Hand

The problem with debugging JSON errors is that you only get to know about one error at a time. Debuggers throw the first error they find and then stop. It would be up to you to regression find the bugs. Usually, it’s not as difficult as it sounds.

The first step is to make sure that your JSON file is perfect from the get go. Here you can take help from JSON linting tools like cleverly named jsonlint.com

If you don’t have any control over the receiving JSON file, then the next step is to add catch exceptions around your JSON.parse.

function validatingJSON (json) {

  var checkedjson

  try {
    checkedjson = JSON.parse(json)
  } catch (e) {

  }

  return checkedjson }

Also, here are the main errors related to JSON.parse that I very painstakingly collected from a very single source [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/JSON_bad_parse]:

SyntaxError: JSON.parse: unterminated string literal 
SyntaxError: JSON.parse: bad control character in string literal 
SyntaxError: JSON.parse: bad character in string literal 
SyntaxError: JSON.parse: bad Unicode escape 
SyntaxError: JSON.parse: bad escape character 
SyntaxError: JSON.parse: unterminated string 
SyntaxError: JSON.parse: no number after minus sign 
SyntaxError: JSON.parse: unexpected non-digit 
SyntaxError: JSON.parse: missing digits after decimal point 
SyntaxError: JSON.parse: unterminated fractional number 
SyntaxError: JSON.parse: missing digits after exponent indicator 
SyntaxError: JSON.parse: missing digits after exponent sign 
SyntaxError: JSON.parse: exponent part is missing a number 
SyntaxError: JSON.parse: unexpected end of data 
SyntaxError: JSON.parse: unexpected keyword 
SyntaxError: JSON.parse: unexpected character 
SyntaxError: JSON.parse: end of data while reading object contents 
SyntaxError: JSON.parse: expected property name or '}' 
SyntaxError: JSON.parse: end of data when ',' or ']' was expected 
SyntaxError: JSON.parse: expected ',' or ']' after array element 
SyntaxError: JSON.parse: end of data when property name was expected 
SyntaxError: JSON.parse: expected double-quoted property name 
SyntaxError: JSON.parse: end of data after property name when ':' was expected 
SyntaxError: JSON.parse: expected ':' after property name in object 
SyntaxError: JSON.parse: end of data after property value in object 
SyntaxError: JSON.parse: expected ',' or '}' after property value in object 
SyntaxError: JSON.parse: expected ',' or '}' after property-value pair in object literal 
SyntaxError: JSON.parse: property names must be double-quoted strings 
SyntaxError: JSON.parse: expected property name or '}' 
SyntaxError: JSON.parse: unexpected character 
SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data

If this doesn’t help, then you are in for one long debugging session.

JSON

Published at DZone with permission of Deeksha Agarwal. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Building a Reddit Scraper in Go: JSON Listings, Pagination, Rate Limits, and Where It Breaks
  • Exploring the DBMS_DEVELOPER Package: JSON Metadata for Oracle Objects
  • When TypeScript Types Meet Untrusted AI: Building Type-Safe LLM Pipelines With Runtime Validation
  • Replacing JSON With Protobuf in Your Microservice Mesh: A Zero-Downtime Migration Blueprint

Partner Resources

×

Comments

Loading comments

The comments didn't load

Please try again in a moment.

Likes

Loading

The next likes didn't load. Please try again.

The likes didn't load

Please try again in a moment.

See who liked this

Log in or join DZone for free to see who liked this article.

Log in Join for free
  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook