Как мне на js создать json файл и сохранить туда данные, которые мне пришли с сервера?
Как мне на js создать json файл и сохранить туда данные, которые мне пришли с сервера?
Я сделал запрос на сервер и мне пришел объект с данными и нужно эти данные записать в отдельный файл json формата.
Ответы (1 шт):
Если устраивает появление диалога для сохранения файла то можно сделать с помощью библиотеки file-saver. В качестве аргументов функция saveAs принимает blob и имя файла. Blob cоздается через экземпляр Blob в конструктор которого передаются данные (строка) и тип файла в данном случае application/json так же иногда не лишне будет передача charset для того чтобы не поломалась кодировка. Код приведенный ниже отработает если его перенести в html файл, в снипете вероятно по причине безопасности некоторый код не отрабатывает.
JSON.stringify(json, null, 2) - форматирует json с табуляцией в 2 пробела
<html lang="ru">
<head>
<title></title>
<meta charset="utf-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.0/FileSaver.min.js" integrity="sha512-csNcFYJniKjJxRWRV1R7fvnXrycHP6qDR21mgz1ZP55xY5d+aHLfo9/FcGDQLfn2IfngbAHd8LdfsagcCqgTcQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<style></style>
</head>
<body>
<script>
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(response => response.json())
.then(json => saveAs(
new Blob(
[JSON.stringify(json, null, 2)],
{type: "application/json;charset=" + document.characterSet}
), "doc.json")
)
</script>
</body>
</html>