博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端 js 拼接json数据 ,以及后端java转义 " 字符串
阅读量:6478 次
发布时间:2019-06-23

本文共 1933 字,大约阅读时间需要 6 分钟。

hot3.png

有一个需求,就是前端 使用 js 创建 几条 有点长的json 格式的数据 ajax给后端去保存。 可是在 拼接的时候,老是 不懂怎么拼接,怎么转成json的字符串数据。

刚开始做的时候,想的是, 使用一个js的map 。去 放入 key -value 的数据,然后把map放入 一个 js的数组里面,然后 将该数组给 转成json格式的数据。可是发现,根本不能讲 有 map的 list 数组给转成json 字符串,,,如果 单纯的使用数组肯定不行,。。。百度了一通,,,都没有找到解决办法,,,在 冷静了一下,去吃个饭,回来耐心一般玩, 一边百度。。。原来是使用 object 对象去 替代 map 就完成了,,,而且 转出来是 完美的json格式的数据,可以放心的 ajax给后台了。下面是例子解决的方法--2中方式比较:$(function(){						     		var arr =  new Array();    		var jarr=new Array();    		    		for (var i = 0; i < 2; i++) {    		var map=new Map();    		var obj = new Object();    		obj["a"+i]="aa";    		    		map.set(i,"aa");    		    		jarr.push(map);    		    		arr.push(obj);     		    		}    								console.log(">>>"+jarr.toString());						console.log("22>>>"+JSON.stringify(jarr));			console.log(">>>>>>>>>>>>>");			console.log(">>>"+arr.toString());						console.log("22>>>"+JSON.stringify(arr));					});下面是 前端的输出结果:>>>[object Map],[object Map]22>>>[{},{}] >>>>>>>>>>>>> >>>[object Object],[object Object]22>>>[{"a0":"aa"},{"a1":"aa"}]可以看到,map对象完全不能转成json 。 将 该json数据 ajax 给后台,注意,后台可能需要 将  字符串里面的 双引号给 转义一下。这样才是后端可以使用 json了,可以直接 使用 json工具类进行转换对象了。

总结

可以发现 对于js来说, 其实 json对象就是 object 对象,,,json对象是 object 对象的一种。。。

上面的是前端的。 到了后端转义。。。 如果不转义就是这样的字符串

[{&quot;material&quot;:&quot;22&quot;,&quot;minThickness&quot;:&quot;22&quot;,&quot;maxThickness&quot;:&quot;22&quot;,&quot;minUnitPrice&quot;:&quot;22&quot;,&quot;maxUnitPrice&quot;:&quot;22&quot;},{&quot;material&quot;:&quot;33&quot;,&quot;minThickness&quot;:&quot;33&quot;,&quot;maxThickness&quot;:&quot;33&quot;,&quot;minUnitPrice&quot;:&quot; 33&quot;,&quot;maxUnitPrice&quot;:&quot; 33&quot;}]

看到了吧。。。这样 子肯定不能使用的。 百度一下,。。。发现 比较少 帮助。。。 其实很简单,只是 替换 即可。

params.replace("&quot;", "\"");这里写 & 要注意,不是我们  按 shift 出来的 & 是不一样的。 被坑了一下。他们是不一样的。 人家是 html 专用的。当然看到有 网友这样处理:String newJson = StringEscapeUtils.unescapeHtml4(jsonStr);可是需要版本比较高的 apache.common 包。 否则没有这个方法。 而 低版本的不可以。

转载于:https://my.oschina.net/u/2419285/blog/1588748

你可能感兴趣的文章
[LeetCode] 96. Unique Binary Search Trees I & 95. II
查看>>
avalon2学习教程12数据验证
查看>>
Git 中必须记住的命令
查看>>
[磁盘存储] FAT16存储详解
查看>>
JavaScript HTML5脚本编程——“历史状态管理”的注意要点
查看>>
去除微信缓存代码
查看>>
fir.im Weekly - 如何愉悦地进行持续集成
查看>>
分享一个PHP项目或者框架可用的路由类Router.class.php
查看>>
CSS基础篇--CSS中table tr:nth-child(even)改变tr背景颜色: IE7,8无效
查看>>
SmallBun 企业级开发脚手架 v1.0.2 Alpha 发布
查看>>
javascript:语句
查看>>
Soul Api 网关发布 1.0.3-RELEASE 版本
查看>>
Mac新手入门以及常用软件推荐
查看>>
程序员总数3w+,阿里巴巴首度公开2018代码数据报告 ...
查看>>
node 和npm 版本更新
查看>>
第一届PolarDB数据库性能大赛Java选手分享
查看>>
洛谷 P3178 BZOJ 4034 [HAOI2015]树上操作
查看>>
Guided Anchoring: 物体检测器也能自己学 Anchor
查看>>
来2019全球智博会 见证AI创新未来
查看>>
使用Logtail采集Kubernetes上挂载的NAS日志
查看>>