Horje
How to Parse JSON Data in JavaScript ?

JSON (JavaScript Object Notation) is a lightweight data-interchange format that is easy for humans to read and write. It is easy for machines to parse and generate it. In JavaScript, parsing JSON data is a common task when dealing with APIs or exchanging data between the client and server.

Using JSON.parse() Method

This is the recommended and safest way to parse JSON data in JavaScript. The JSON.parse() method parses a JSON string, constructing the JavaScript value or object described by the string.

Syntax:

let jsonObject = JSON.parse(jsonString);

Example: Parsing the Person JSON data using the JSON parse() method.

JavaScript
let jsonString = '{"name": "ABC", "age": 30}';
let jsonObject = JSON.parse(jsonString);
console.log(jsonObject.name);
console.log(jsonObject.age);

Output
ABC
30

Using eval() Function

Although it is not recommended due to security concerns, you can use the eval() function to parse JSON data. However, this method executes the code passed to it, which can pose security risks if the JSON data is from an untrusted source.

Syntax:

let jsonObject = eval('(' + jsonString + ')');

Example: Parsing the Person JSON data using the eval() method.

JavaScript
let jsonString = '{"name": "ABC", "age": 30}';
let jsonObject = eval('(' + jsonString + ')');
console.log(jsonObject.name); 
console.log(jsonObject.age);

Output
ABC
30

Using new Function() Constructor

Similar to eval(), you can also use the new Function() constructor to parse JSON data. However, this method also executes the code passed to it, making it susceptible to security vulnerabilities.

Syntax:

let parseJson = new Function('return ' + jsonString + ';');
let jsonObject = parseJson();

Example: Parsing the Person JSON data using the new Function() method.

JavaScript
let jsonString = '{"name": "ABC", "age": 30}';
let parseJson = new Function('return ' + jsonString + ';');
let jsonObject = parseJson();
console.log(jsonObject.name);
console.log(jsonObject.age);

Output
ABC
30

Using a Custom JSON Parser

While the JSON.parse() method is the standard way to parse JSON in JavaScript, creating a custom JSON parser can be an interesting exercise to understand how JSON parsing works. This method can be beneficial in learning scenarios or when needing specific custom parsing behavior.

Example: The following example demonstrates how to implement a basic custom JSON parser for parsing JSON data.

JavaScript
const jsonString = '{"name": "Alice", "age": 30, "profession": "Engineer"}';

function customJSONParser(jsonString) {
  let index = 0;

  function parseValue() {
    skipWhitespace();
    if (jsonString[index] === '"') return parseString();
    if (jsonString[index] === '{') return parseObject();
    if (jsonString[index] === '[') return parseArray();
    return parsePrimitive();
  }

  function parseString() {
    index++; // skip the opening quote
    let result = '';
    while (index < jsonString.length && jsonString[index] !== '"') {
      result += jsonString[index++];
    }
    index++; // skip the closing quote
    return result;
  }

  function parseObject() {
    index++; // skip the opening brace
    const result = {};
    skipWhitespace();
    while (index < jsonString.length && jsonString[index] !== '}') {
      const key = parseString();
      skipWhitespace();
      index++; // skip the colon
      const value = parseValue();
      result[key] = value;
      skipWhitespace();
      if (jsonString[index] === ',') index++; // skip the comma
      skipWhitespace();
    }
    index++; // skip the closing brace
    return result;
  }

  function parseArray() {
    index++; // skip the opening bracket
    const result = [];
    skipWhitespace();
    while (index < jsonString.length && jsonString[index] !== ']') {
      result.push(parseValue());
      skipWhitespace();
      if (jsonString[index] === ',') index++; // skip the comma
      skipWhitespace();
    }
    index++; // skip the closing bracket
    return result;
  }

  function parsePrimitive() {
    let start = index;
    while (index < jsonString.length && /[\w.]/.test(jsonString[index])) {
      index++;
    }
    const primitive = jsonString.slice(start, index);
    if (primitive === 'null') return null;
    if (primitive === 'true') return true;
    if (primitive === 'false') return false;
    return parseFloat(primitive);
  }

  function skipWhitespace() {
    while (/\s/.test(jsonString[index])) index++;
  }

  return parseValue();
}

const jsonObject = customJSONParser(jsonString);
console.log(jsonObject);
// Output: { name: 'Alice', age: 30, profession: 'Engineer' }

Output
{ name: 'Alice', age: 30, profession: 'Engineer' }





Reffered: https://www.geeksforgeeks.org


JavaScript

Related
How to Convert Object to Array in JavaScript? How to Convert Object to Array in JavaScript?
JavaScript Program to Add Two Promises JavaScript Program to Add Two Promises
How to Convert Callback to Promise in JavaScript ? How to Convert Callback to Promise in JavaScript ?
How to Delay a Function Call in JavaScript ? How to Delay a Function Call in JavaScript ?
How to Create an Alert in JavaScript ? How to Create an Alert in JavaScript ?

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
12