前端 js 拼接json数据 ,以及后端java转义 " 字符串
2017-12-12 00:00
2895 查看
有一个需求,就是前端 使用 js 创建 几条 有点长的json 格式的数据 ajax给后端去保存。
可是在 拼接的时候,老是 不懂怎么拼接,怎么转成json的字符串数据。
对于js来说, 其实 json对象就是 object 对象,,,json对象是 object 对象的一种。。。
上面的是前端的。
到了后端转义。。。
如果不转义就是这样的字符串
看到了吧。。。这样 子肯定不能使用的。
百度一下,。。。发现 比较少 帮助。。。
其实很简单,只是 替换 即可。
可是在 拼接的时候,老是 不懂怎么拼接,怎么转成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 包。 否则没有这个方法。 而 低版本的不可以。
相关文章推荐
- 【问题-java-json】josn的发送与接收(全)解析json对象与字符串在js中的区别,以及后端spring该如何接收?
- 手把手教你们通过jquery ajax调用查询java struts2后端数据+js拼接字符串
- java web SpringMVC后端传json数据到前端页面
- java json字符串传递给 js 时 特殊字符转义错误 研究
- android/java中把对象、对象bean、Collection以及字符串转换成Json格式数据
- java后台返回前端数据的方式json,html 组装json的技术struts2-json-plugin,fast-json,Gson,手动拼接
- js中json字符串转换为对象以及转换是报 缺少";"错误的解决方法
- java web SpringMVC后端传json数据到前端页面实例代码
- 将服务端的一个JSON格式的字符串输出给客户端js,客户端接收到的字符串里双引号被转义成“ "”的解决方案
- js字符串拼接时,日期控件中的双引号需要转义,不能用\"转义,要用&quot;
- 前台js传入json或map类型数据给后台以及后台java接收操作
- Freemarker输出json和java字符串以及javascript代码转义
- JSON后端向前端传递数据 JAVA
- 通过java后台拼接json字符串修改页面样式----一页多用 + 双引号(")和单引号(')截断字符串解决方案
- JAVA实现JSON后端向前端传递数据
- 手把手教你们通过jquery ajax调用查询java servlet后端数据+js拼接字符串
- (转摘)解析JSON字符串中的回车和\r\n字符串,以及JS的replace用法
- JS解析json数据并将json字符串转化为数组的实现方法
- 用jquery以及json包将表单数据转为json字符串
- java方式的将java对象以及list或者map转化为json数据,json转换为object或者map