[js] 处理字符串换行造成的json解析失败
需求:从数据库某个字段取出字符串出来,转为json,结果发现报错为 解析失败,发现是因为取出的字符串换行导致,现在需要将字符串里面的换行替换为'',使字符串可依成功解析成json对象。
技术:依靠replace函数实现
----------------------------------------
数据库里面的
----------------------------------------
{"choiceList":{"A":"<p>
<span>spare</span>
</p>","B":"<p>
<span>fast </span>
</p>","C":"<p>
<span>moderate</span>
</p>","D":"<p>
<span>moral</span>
</p>"}}
----------------------------------------
去掉多余空格后的样子
----------------------------------------
{"choiceList":{"A":"<p><span>spare</span></p>","B":"<p><span>fast </span></p>","C":"<p><span>moderate</span></p>","D":"<p><span>moral</span></p>"}}
----------------------------------------
最后的解析成功的
----------------------------------------
{
"choiceList": {
"A": "<p><span>spare</span></p>",
"B": "<p><span>fast </span></p>",
"C": "<p><span>moderate</span></p>",
"D": "<p><span>moral</span></p>"
}
}
关键代码:
var json=异常字符串
json = json.replace(/\n/g,"").replace(/\r/g,"");//去掉字符串中的换行符
json = json.replace(/\n/g,"").replace(/\s|\xA0/g,"");//去掉字符串中的所有空格
var jsonObj= eval('(' + json + ')'); //将字符串解析成json对象
console.log(jsonObj);
测试:
http://www.w3school.com.cn/tiy/t.asp?f=jquery_hide <!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script>
$(document).ready(function(){
var json='{"choiceList": {"A2":"<p>\n\n<span> spare</span>\n\n</p>","B":"<p>\n\n<span>fast </span>\n\n</p>","C":"<p>\n\n<span> moderate</span>\n\n</p>","D":"<p>\n\n<span>moral</span>\n\n</p>"}}';
json = json.replace(/\n/g,"").replace(/\r/g,"").replace(/\s|\xA0/g,"");
var jsonObj= eval('(' + json + ')');
console.log(jsonObj);
});
</script>
</head>
<body>
<p>请在console控制台看结果</p>
</body>
</html>
[js] 处理字符串换行造成的json解析失败的更多相关文章
- JS 验证字符串是否能转为json格式
var isJSON=function (str) { if (typeof str == 'string') { try { var obj = JSON.parse(str); if (typeo ...
- iis上json解析失败404
控制面板->打开或关闭windows功能->Internet信息服务->万维网服务->应用程序开发功能,勾选上“.net扩展性”和“ASP.NET”,保存后,重启IIS服务器. ...
- JSON 解析中遇到的坑😭
最近做加解密遇到一个很“奇葩的问题”,解析服务端加密后的字符串 序列化 时一直报错 "json解析失败:Error Domain=NSCocoaErrorDomain Code=3840 & ...
- js中解析json对象:JSON.parse()用于从一个字符串中解析出json对象, JSON.stringify()用于从一个对象解析出字符串。
JSON.parse()用于从一个字符串中解析出json对象. var str = '{"name":"huangxiaojian","age&quo ...
- [转]JS判断字符串是否为json数据
原文地址:https://blog.csdn.net/qq_26400953/article/details/77411520 这周碰到了很多问题,尽量把遇到的问题都记录下来. JS判断字符串是否为j ...
- js将字符串转换成json的三种方式
1,js自带的eval函数,其中需要添加小括号eval('('+str+')'); function strToJson(str){ var json = eval('(' + str + ')'); ...
- C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题
C#字符串数组排序 //排序只带字符的数组,不带数字的 private string[] aa ={ "a ", "c ", "b & ...
- js中Json字符串如何转成Json对象(4种转换方式)
js中Json字符串如何转成Json对象(4种转换方式) 一.总结 一句话总结:原生方法(就是浏览器默认支持的方法) 浏览器支持的转换方式(Firefox,chrome,opera,safari,ie ...
- js实现字符串转JSON格式
在浏览器前端实现字符串转JSON格式,有多种方法,总结如下: 方法1. js函数,eval() 语法: var obj = eval ("(" + txt + ")&qu ...
随机推荐
- windows7命令行终端获取管理员模式随笔
非常感谢http://wenku.baidu.com/view/d0e8d2d2240c844769eaee8a.html 背景: 安装了windows7系统后发现有很多命令在命令行模式下运行不了说没 ...
- BZOJ.3928.[CERC2014]Outer space invaders(区间DP)
BZOJ3928 双倍经验BZOJ4048 Codeforces GYM100543 L \(Description\) \(Solution\) 考虑出现时间在\([l,r]\)内的敌人,设最远的敌 ...
- FlarumChina SQL injection Vulnerability
First,We need to download our vulnerable program in GitHub links:https://github.com/skywalker512/Fla ...
- [TYVJ1473]校门外的树3
思路: 维护两个树状数组,一个记录种树区间左端点,一个记录右端点. 每次询问查询“看不见的树区间”,即右端点小于查询区间左端点和左端点小于查询区间右端点. #include<cstdio> ...
- 弗洛伊德算法Floyed(求各顶点间最短路径):可打印最短路径
#include <iostream> #include <string> #include <iomanip> using namespace std; #def ...
- vscode调试C/C++时支持查看定义查看引用
貌似老版支持现在不支持了,需要自己加第三方工具,方法如下: 确保你安装了c/c++,此文写作时版本为0.20.1 从GTAGS官网下载Win32程序,解压,将其放在合适的位置,并把其目录下/bin文件 ...
- ADC and DAC Analog Filters for Data Conversion
Figure 3-7 shows a block diagram of a DSP system, as the sampling theorem dictates it should be. Bef ...
- HTML5 Canvas制作雷达图实战
雷达图又叫蜘蛛网图,是一种对各项数据查看很明显的表现图,在很多游戏中,对游戏中的每个角色的分析图一般也用这种图. 下面,用HTML5的Cavas来实现雷达图. 效果 一.创建Canvas var mW ...
- Drawing line on a click on ZedGraph Pane
https://stackoverflow.com/questions/12422398/drawing-line-on-a-click-on-zedgraph-pane public Form1() ...
- Knockout.Js官网学习(Mapping高级用法一)
前言 有时候,在使用ko.mapping.fromJS的时候,可能有必要去使用mapping的高级用法来定义mapping的详细过程,以后定义了,以后再调用的时候就不必再定义了.这里有一些情形,你可能 ...