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(/ /g,""); jsonStrRep = jsonStrRep.replace(/ /g,"");