概述
一、场景简述
在写后端返回JSON数据到前端的时候,遇到了前端一直无法获得后端传输的数据,但实际已经后端已经传输到前端了。在看前端获取到后端返回的数据的时候发现JSON中含有反斜杠,如下图
想必一定是这个转义符导致前端显示数据失败。
二、解决方案
笔者一开始用document.toJson().replace(""","'")将反斜杠+双引号转换成单引号,但无果。
笔者就用了import net.sf.json.JSONArray;包下的JSONArray.fromObject(list)实现了,具体实现如下
1、首先maven添加依赖
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
2、具体后端测试代码
public JSONObject test(@RequestParam(defaultValue="10")int pageSize, @RequestParam(defaultValue
="0")int pageNumber){
List<String> list = new ArrayList();
JSONObject jsonobj = new JSONObject();
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase mongoDatabase = mongoClient.getDatabase("mongodb数据库名");
MongoCollection<Document> collection = mongoDatabase.getCollection("mongodb集合名");
//获取mongodb中符合条件的document
FindIterable<Document> findIterable = collection.find().skip(pageNumber).limit(pageSize);
//遍历
for (Document document : findIterable) {
//向list中添加符合条件的docement
list.add(document.toJson());
}
//处理了反斜杠问题
JSONArray jarr = JSONArray.fromObject(list);
//分页限制打印
System.out.println(pageNumber);
System.out.println(pageSize);
jsonobj.put("rows",jarr);
jsonobj.put("total",4);
return jsonobj;
}
查看下返回给前端的JSON
可以看到已经没有反斜杠了,问题解决,前端数据显示成功
最后
以上就是典雅橘子为你收集整理的Java处理JSON数据返回到前端的反斜杠一、场景简述二、解决方案的全部内容,希望文章能够帮你解决Java处理JSON数据返回到前端的反斜杠一、场景简述二、解决方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复