Checking the JSON output of my application on https://jsonlint.com/ indicates that the JSON is invalid… But I cannot fathom how it’s invalid.
The JSON in question:
{
records: [{
id: 70,
whse: '00',
partNo: '100E',
description: '1" EMT CONDUIT (BUNDLE QTY. 1000FT)',
}],
start: 0,
limit: 10,
count: 1
}
I’ve tried changing the type of quotes used to no avail. The error returned doesn’t really help me at all either:
Error: Parse error on line 1:
{ records: [{ id: 70
--^
Expecting 'STRING', '}', got 'undefined'
As far as I can tell, it’s valid JSON. This JSON is being returned from a Response.json()
function call after a successful fetch()
.
2
Answers
You were right to think of the quotes as a potential source of problem.
That’s a valid JavaScript Object yes. Meaning a JS interpreter will successfully understand it if you were to do:
but that’s not a valid JSON string. if you want valid JSON string, you’d need to stringify it like this:
and the result would be the string:
(notice the double quotes around key names)
That is because raw JSON expects string or ints as property, however, for a javascript JSON its a valid syntax. There are several things that jsonlint didnt liked, in order to fix this you must
And you will get something like this:
Also, take into consideration that since you have double quotes inside a string you have to use the backslash to escape the character