【发布时间】:2020-12-20 08:14:28
【问题描述】:
在从 Angular 7 中压缩为 gzip 的后端 Spring Boot 中获取数据时,获取“SyntaxError:”JSON.parse 中位置 0 处 JSON 中的意外标记”
在后端,我将对象列表压缩如下:
ArticleObj.java
public class ArticleObj{
private String id;
private String name;
private String heading;
private String language;
private String identifier1;
private String identifier2;
private String identifier3;
private String identifier4;
private String identifier5;
private String identifier6;
private String identifier7;
private String identifier8;
private String identifier9;
private String identifier10;
private String baseIndentifier;
private String moduleId;
.....
...
}
//列表大小在5000-6000左右
List<ArticleObj> tempList=new ArrayList<ArticleObj>();
String json=new Gson().toJson(tempList);
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(json.getBytes());
gzip.close();
String outStr = out.toString("UTF-8");
在 Angular 中,我正在尝试这样做
getData(){
const headers = new HttpHeaders({
"Accept-Encoding": "gzip", "Content-Type":"application/json"
})
return this.http.get(url,{headers:headers});
}
this.getData().subscribe(res=> ....)
我不知道如何将 gzip 数据解压成 json 格式。我将列表压缩成 gzip 的原因是因为列表的大小超过 20mb,并且需要花费大量时间来消耗这些数据。任何人都可以在这里帮助我。
【问题讨论】:
-
请添加 tempList 的内容和完整的堆栈跟踪。
-
@Milgo,我已经更新了细节,请看一下
-
你仍然错过了堆栈跟踪。还要考虑使用分页。
标签: json angular spring-boot angular7 gzip