Convert JSON format to CSV format for MS Excel

Json

Json Problem Overview


I received a JSON file but don't know how to read it. Is there a converter where I can produce a nice CSV file so it can be loaded into MS Excel? I don't understand JSON, so it would be awesome if someone wrote a script or link me to one that would do the job.

I found something close at http://json.bloople.net but, unfortunately, it's JSON to HTML.

Edit: jsonformat.com gets even closer, however it's still not CSV.

Json Solutions


Solution 1 - Json

I'm not sure what you're doing, but this will go from JSON to CSV using JavaScript. This is using the open source JSON library, so just download JSON.js into the same folder you saved the code below into, and it will parse the static JSON value in json3 into CSV and prompt you to download/open in Excel.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>JSON to CSV</title>
    <script src="scripts/json.js" type="text/javascript"></script>
    <script type="text/javascript">
    var json3 = { "d": "[{\"Id\":1,\"UserName\":\"Sam Smith\"},{\"Id\":2,\"UserName\":\"Fred Frankly\"},{\"Id\":1,\"UserName\":\"Zachary Zupers\"}]" }
			
	DownloadJSON2CSV(json3.d);
        
    function DownloadJSON2CSV(objArray)
	{
    	var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
    
    	var str = '';
    
    	for (var i = 0; i < array.length; i++) {
        	var line = '';
        
    		for (var index in array[i]) {
        		line += array[i][index] + ',';
        	}

    	    // Here is an example where you would wrap the values in double quotes
    	    // for (var index in array[i]) {
    	    //    line += '"' + array[i][index] + '",';
    	    // }
        
        	line.slice(0,line.Length-1); 
        
        	str += line + '\r\n';
		}
		window.open( "data:text/csv;charset=utf-8," + escape(str))
	}

    </script>

</head>
<body>
    <h1>This page does nothing....</h1>
</body>
</html>

Solution 2 - Json

I created a JsFiddle here based on the answer given by Zachary. It provides a more accessible user interface and also escapes double quotes within strings properly.

Solution 3 - Json

Using Python will be one easy way to achieve what you want.

I found one using Google.

"convert from json to csv using python" is an example.

Solution 4 - Json

You can use that gist, pretty easy to use, stores your settings in local storage: https://gist.github.com/4533361

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionstockoverflowView Question on Stackoverflow
Solution 1 - JsonZacharyView Answer on Stackoverflow
Solution 2 - JsonJoseph SturtevantView Answer on Stackoverflow
Solution 3 - JsonchinuyView Answer on Stackoverflow
Solution 4 - JsonPaleszView Answer on Stackoverflow