Как скачать ответ JSON в Excel, используя Javascript? - PullRequest
1 голос
/ 26 октября 2019

У меня нет опыта работы с ajax. Я застрял с проблемой, когда я хочу, чтобы кнопка отправляла данные формы в URL (API), который дает ответ json в виде:

{  
    "employee": {  
        "name":       "sonoo",   
        "salary":      56000,   
        "married":    true  
       }  
   } 

Теперь нажатие кнопки «Отправить» должно давать возможность загрузки выше json resposne, чтобы преуспеть? Кто-нибудь может, пожалуйста, помочь или направить меня, что я должен научиться решать это?

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Во-первых, вам нужно научиться отправлять запросы и получать ответы с помощью AJAX. Если вы знаете, как правильно получить ответ AJAX, вы можете выполнить следующие действия, чтобы загрузить ответ JSON в виде файла Excel:

  • Вы можете использовать Blob и URL.createObjectURL () , чтобы создать ссылку для загрузки ответа в виде файла.

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script>
	function download(){
    var jsonResponse = '{ "employee": { "name": "sonoo", "salary": 56000, "married": true } }' ;
    
    if (confirm('Download response to Excel file?')) {
		  var fileName = "";
		  var columnNames = [];
		  var records = [];
		  var responseExcel = "";
		  var jsObject = JSON.parse( jsonResponse );

			for (var key in jsObject) {
				fileName = key + ".csv";
				if (jsObject.hasOwnProperty(key)) {
					for (var key2 in jsObject[key]) {
						columnNames.push(key2);
						if (jsObject[key].hasOwnProperty(key2)) {
							records.push(jsObject[key][key2]);
						}
					}
				}
			}
			
			responseExcel = columnNames.join(";") + "\n";
			responseExcel += records.join(";");
			
			var blob = new Blob([responseExcel], {type: "text/plain"});
			var url  = URL.createObjectURL(blob);

			var a = document.createElement('a');
			a.href        = url;
			a.download    = fileName;
			a.textContent = "Download " + fileName;

			document.getElementById('json').appendChild(a);
		} else {
			// Do something else ...
		}
	}
  </script>
</head>
<body>

<h1>My Page</h1>
<p>Some paragraph.</p>

<button onclick="download();">Submit</button><br><br>
<div id="json"></div>

</body>
</html>
1 голос
/ 26 октября 2019

Если у вас уже есть код JSON, вы можете прочитать этот ответ: Как загрузить объект JSON в виде файла - StackOverflow .

И если вам нужно преобразовать его в CSVфайл, вы можете использовать это, чтобы вручную преобразовать его: JSON в CSV Converter .

Если вам действительно нужно преобразовать код JSON в CSV с помощью JavaScript, я думаю, что этот ответ поможет: Как конвертировать JSON в CSV с помощью JavaScript .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...