Implement JSON.parse (Medium)
Good afternoon! Here's our prompt for today.
In JavaScript by default, there is a method that can parse a given JSON string, and it can be invoked by calling JSON.parse()
. The way this method works is constructing the JavaScript value or object described by the string.
Can you implement your own version of this method, called parseJSON
, accepting one parameter (the JSON string), keeping in mind all the value types and restrictions in the JSON format?
1function parseJSON(input) {
2 // fill in this method
3}
Your task is to create a function called parseJSON
that takes a string as input and returns the corresponding JavaScript object. The function should be able to handle JSON-like strings, which can be:
- Primitive types:
null
,true
,false
- Strings wrapped in quotes:
"string"
- Arrays:
[1, "a", null]
- Objects:
{"key": "value", "anotherKey": 42}
Your parser should return the corresponding JavaScript types for these string inputs. For example, if the input string is "null"
, your function should return null
.

xxxxxxxxxx
function parseJSON(input) {
// if the input is empty or starts with an invalid character, throw an error
if (input === "" || input[0] === "'") {
throw Error();
}
// check if the input is null, an empty object, empty array, or a boolean and return the value from the input
if (input === "null") {
return null;
}
if (input === "{}") {
return {};
}
if (input === "[]") {
return [];
}
if (input === "true") {
return true;
}
if (input === "false") {
return false;
}
//if the input starts with a quote, return the value from inside the quotes
if (input[0] === '"') {
return input.slice(1, -1);