js下载String,生成txt文本

目录

解释

具体代码


最近在项目中碰到了需要下载json的,由于后端已经将json以字符串的方式发送到了前端。

这里只需要将拿到的String下载下来就好。在这里记录一下。

解释

JSON 通常是用于与服务端交换数据。

 JSON.parse方法将数据转换为 JavaScript 对象。

let jsondata = JSON.parse(res.returnJson)

 JSON.stringify(value, replacer, space)

value:必需。需要转换的JavaScript的值(通常为对象或数组)

replacer:可选。用于转换结果的函数或数组。

space:可选。文本添加缩进,空格和换行符。如果space是一个数字,则返回文本在每一个级别缩进指定数目的空格,如果space大于10,则文本缩进10个空格。space也可以使用非数字,如‘\t’。

const 声明一个只读的常量,一旦声明,常量的值就不能改变。

const urlObject = window.URL || window.webkitURL || window;

URL对象是硬盘(SD卡等)指向文件的一个路径,如果我们做文件上传的时候,想在没有上传服务器端的情况下看到上传图片的效果图的时候就可是以通过var url=window.URL.createObjectURL(obj.files[0]);获得一个http格式的url路径,这个时候就可以设置到<img>中显示了。
window.webkitURL和window.URL是一样的,window.URL标准定义,window.webkitURL是webkit内核的实现(一般手机上就是使用这个),还有火狐等浏览器的实现。

const export_blob = new Blob([内容],{type:文件类型});

{type: "application/zip"},

excel下载{type: "application/vnd.ms-excel"},

导出下载{ type: 'application/octet-stream' }

const save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a");

createElementNS(namespaceURI,qualifiedName[,options]);

创建一个具有指定的命名空间 URI 和限定名称的元素。

namespaceURI:指定与元素相关联的命名空间URI的字符串。

qualifedName:指定要创建的元素类型的字符串。

返回值:新元素
 

save_link.href = urlObject.createObjectURL(export_blob);

参数:用于创建 URL 的 File 对象、Blob 对象或者 MediaSource 对象。

返回值:一个DOMString包含了一个对象 URL,该 URL 可用于指定源 object的内容。

save_link.download = "jsonfile";

等号后为文件名。

具体代码

具体代码如下:

.then(res => {
      if (res.msg = "保存json成功") {
        let jsondata = JSON.parse(res.returnJson)
        let showjson = JSON.stringify(jsondata, null, '\t')
        // console.log(showjson)
       
      
        //点击后下载json文件
        const urlObject = window.URL || window.webkitURL || window;
        const export_blob = new Blob([showjson]);
        const save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
        save_link.href = urlObject.createObjectURL(export_blob);
        save_link.download = "jsonfile";
        const ev = document.createEvent("MouseEvents");
        ev.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0,
          null);
        save_link.dispatchEvent(ev);
      }
      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Java 中,您可以使用 Spring Boot 框架来提供接口实现文件下载功能。同时,前端可以使用 JavaScript 在浏览器中生成下载 txt 文档。下面是一个示例代码: Java 后端代码(使用 Spring Boot): ```java import org.springframework.core.io.Resource; import org.springframework.core.io.UrlResource; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import java.io.IOException; import java.net.MalformedURLException; import java.nio.file.Path; import java.nio.file.Paths; @Controller @RequestMapping("/download") public class DownloadController { @GetMapping("/txt") public ResponseEntity<Resource> downloadTxtFile() throws IOException { // 生成下载文本内容 String content = "This is a sample text file."; // 创建临时文件并写入内容 Path tempFile = Paths.get("temp.txt"); Files.write(tempFile, content.getBytes()); // 创建资源对象 Resource resource = new UrlResource(tempFile.toUri()); // 设置文件下载响应头 return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"temp.txt\"") .contentType(MediaType.TEXT_PLAIN) .body(resource); } } ``` 在上述示例代码中,我们创建了一个名为 `DownloadController` 的控制器,其中包含了一个 `/download/txt` 的接口。该接口会生成一个临时的 txt 文件,并返回给前端进行下载。 前端代码(使用 JavaScript): ```html <!DOCTYPE html> <html> <head> <title>Generate and Download Text File</title> </head> <body> <button onclick="generateAndDownloadFile()">Download Text File</button> <script> function generateAndDownloadFile() { // 生成文本内容 var content = "This is a sample text file."; // 创建 Blob 对象 var blob = new Blob([content], { type: 'text/plain' }); // 创建下载链接 var downloadLink = document.createElement('a'); downloadLink.href = window.URL.createObjectURL(blob); downloadLink.download = 'sample.txt'; // 模拟点击下载链接 downloadLink.click(); } </script> </body> </html> ``` 在上述示例代码中,我们创建了一个包含一个按钮的 HTML 页面。当用户点击按钮时,会调用 JavaScript 函数 `generateAndDownloadFile()` 来生成下载 txt 文件。 希望这个示例能够满足您的需求!如果有任何问题,请随时追问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值