Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert JSON format to CSV format for MS Excel [closed]

Tags:

json

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.

like image 752
stockoverflow Avatar asked Nov 09 '10 05:11

stockoverflow


1 Answers

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> 
like image 139
Zachary Avatar answered Oct 08 '22 19:10

Zachary