Download JSON data in CSV format Cross Browser Support

In this tutorial, we’ll demonstrate how to convert JSON data into CSV format and download it as a CSV file. This is a common requirement, but many solutions fail when using Internet Explorer (IE) versions below 10. We’ll present a solution that works across all browsers, including IE8 and above. You can view a demo here and download the code here.

Creating a Function to Check for Internet Explorer

First, we’ll create a function to check if the user’s browser is Internet Explorer. This function will return a boolean value: true if the browser is Internet Explorer, and false otherwise. This function is crucial because the method for downloading JSON data as a CSV file differs depending on the browser.

Converting JSON Data to CSV Format

Next, we’ll create a function to convert JSON data into CSV format. This function, JSONToCSVConvertor, takes three parameters:

  • JSONData: The JSON data to be converted.
  • fileName: The name of the downloaded file.
  • ShowLabel: A boolean value indicating whether to generate the label/header.

This function first checks if the JSONData is an object. If it’s not, it parses the JSONData into an object. It then iterates over the JSONData to convert it into CSV format.

Downloading the CSV File

Finally, we’ll create a function to download the CSV file. This function uses the msieversion function to check if the browser is Internet Explorer. If it is, the function opens a new window, writes the CSV data to the window, and then uses the execCommand('SaveAs') method to download the file. If the browser is not Internet Explorer, the function creates a new link element, sets the href of the link to the CSV data, and triggers a click event on the link to download the file.

By following this tutorial, you’ve learned how to convert JSON data into CSV format and download it as a CSV file in a way that’s compatible with all browsers. This is a valuable skill for creating dynamic and interactive web applications.

Facebook
Twitter
LinkedIn
Pinterest

Related posts