处理JSON数据中含有双引号??
来源:互联网 发布:淘宝里的表情 编辑:程序博客网 时间:2024/06/06 14:08
{"fssj":"20170717145154","person1":"管理员","person2":"销售经理22","rybm_fsr":1,"rybm_jsr":3,"xtxxbm":125,"xxbt":"ddd","xxnr":"<p><strong>dddd<em>dd</em><
/strong><strong><em><span style="text-decoration: underline;">dadada</span></em></strong><br/></p><p><strong><em><span style="text-decoration: line-through;">ddddd</span></em></strong><strong><em><span style="text-decoration: underline;">dd<sub>fff</sub></span></em></strong></p>","zt":"0"}
这个语句可以看到 有点像json。但是 在xxnr的value里 有双引号即“”,则这个是一个不合法的json。
所以没有办法将这个语句转化。即在js里没法用JSON.parse()转化。
我先说明一下情况:这个是一个一个值,通过ajax传递到java后台,后台在把这些值保存在数据库里。
在其他函数里,获取这些值,并通过保存在map里,然后用JSON.toJSONString()转化为json 就成为了
上面的样子。 本来想通过js接受后台传递过来的json。并用JSON.parse()转化,可以因为是不合法的
json,所以 失败。
解决方法:
在js通过ajax传递参数之前,对参数xxnr的value值进行转义将双引号转为/”即xxnr=xxnr.replace
(/"/g,"\\\"");。在js里没有全局替换。所以用/g 正则表达式代替全局。 如.
replace(/\'/g, "\\'") -> ' 替换成 \'
.replace(/\"/g, "\\\"") -> " 替换成\"
注:适用于 onclick='Test("数字双音\"")' 这种写法
.replace(/\"/g, """) ->" 替换成 "
注:适用于onclick="Test('数字双音"')" 建议写法
.replace(/</g, "\\\<") -> < 替换成\<
.replace(/>/g,"\\\>") -> > 替换成\>
转义结束后 再传递参数执行上述操作 就可以成功
如果没有转义直接传递了,那么再后台可以自己写一个函数, 把属性值中的双引号改成中文引号就可以
了
private static String jsonString(String s){
char[] temp = s.toCharArray();
int n = temp.length;
for(int i =0;i<n;i++){
if(temp[i]==':'&&temp[i+1]=='"'){
for(int j =i+2;j<n;j++){
if(temp[j]=='"'){
if(temp[j+1]!=',' && temp[j+1]!='}'){
temp[j]='”';
}else if(temp[j+1]==',' || temp[j+1]=='}'){
break ;
}
}
}
}
}
return new String(temp);
}
以上是根据别人的博客和建议做的总结
阅读全文
0 0
- 处理JSON数据中含有双引号??
- 处理JSON数据中含有双引号??
- 接口返回的 json数据中含有双引号 或其他非法字符的解决办法
- 字符串中含有双引号:
- JSON中单双引号的处理
- json中含有特殊字符串如何处理
- Java JSON数据解析中关于字段双引号的问题
- JSON 字符串 单引号双引号 处理
- 需要判断字符串中是否含有双引号
- 判断json数据中是否含有某个字段
- JSON中双引号的轮回
- JavaScript 中处理 JSON 数据
- Android中处理Json数据
- Unity中处理json数据
- SpringMVC中处理json数据
- Hive中处理json数据
- scala中处理json数据
- 使用sqlldr导入GPS数据含有clob字段和双引号
- 浮躁的年轻人
- ISO刻录到U盘(ISO to USB) v3.0 绿色中文版
- Android 6.0 权限机制详解
- 1.9Android 学习+进度之九-消息队列及其相关
- Joda-Time几个用法小记
- 处理JSON数据中含有双引号??
- 图像基础、OpenCV入门2——变亮、变暗、日落、水印等
- 基本排序算法
- 每日英语阅读(十四)
- YUV420 存储格式
- Source Insight v4.0免费版
- 性能优化知多少
- 基于Java的链表实现
- MEMORY INSTRUCTIONS: LOAD AND STORE