json格式字符串用jquery.parseJSON()出现的问题 Uncaught SyntaxError: Unexpected token ' Uncaught SyntaxError: Unexpected number (index)

Unexpected number(index)的错误用的json字符串如 

var jsonStr = "{1:'北京note备注信息',2:'上海note备注信息',3:'广东note备注信息',4:'深圳note备注信息4',5:'天津note备注信息5',6:'湖北note备注信息6',7:'重庆note备注信息7',8:'欧盟note备注信息8',9:'加利福尼亚州note备注信息8',10:'加拿大魁北克note信息',11:'美国东北部RGGI协会组织',12:'澳大利亚备注信息',13:'新西兰备注信息',14:'东京备注信息11111',15:'韩国首尔信息',16:'瑞士信息备注'}";

用开源中国等json格式化此字符串都能解析正常,可jquery解析时候偏偏报错不认你的这套,只好苦苦找错误。

Uncaught SyntaxError: Unexpected token ' 错误字符串如:

var jsonStr = "{'北京':1,'上海':2,'广东':3,'深圳':4,'天津':5,'湖北':6,'重庆':7,'欧盟':8,'加利福尼亚州':9,'加拿大魁北克':10,'美国RGGI':11,'澳大利亚':12,'新西兰':13,'东京':14,'韩国':15,'瑞士':16}"

用json格式化工具同样无误,只好找jquery文档看jquery.parseJSON()用法 。给的示例如下:

解析一个JSON字符串

jQuery 代码:
var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" ); 我想难道就是里面 单引号和双引号的问题吗,现在无其他解决方法,只好按着实例换,结果还真解析成功。估计jquery源码没做对字符串里面的符号做处理,来判断里面包含什么样的单引号。

大致的问题的解决办法找到,就容易入手。

对于json字符串是从后台拼凑的,因为把areaId当成key部分,结果 直接 jsonStr.append('"'+etsMapInfo.getAeId()+'"'); 它老人家把1转成69 我不懂了。 无奈我下狠招而已,在外头先给转成字符串的。唉

感觉都是先解决问题优先。

字符串里面的代码有换行,jquery 解析就报一个跟什么一样错误。 需要用替换函数替换换行符号。如下所示:

var jsonStrRep = '${jsonStr}'.replace(/\r\n/g,"");
	jsonStrRep = jsonStrRep.replace(/\n/g,"");
posted @ 2014-09-26 15:20  SongPingping  阅读(16024)  评论(0编辑  收藏  举报