2011-01-21 52 views
0

我有一个导致JSON解析失败的隐藏字符。正确地转义字符串的最好方法是像这些隐藏的字符完成崩溃我的JSON?转义导致JSON验证失败的隐藏字符

这里是代码,不可见的字符是在“大脑”中的n和s之间,直到你删除那个不可见的字符JSON.parse()会失败......问题是,如何去除隐形字符?

var mystring='{"invis":"their brains process differently"}'; 
console.log("cool" + mystring); 
console.log(JSON.parse(mystring)); 

注意我发现,在上面的代码中实际删除不可见字符,但它是在这里pastie,如果要复制并粘贴到看问题: See the code on pastie

+0

什么是隐藏角色?你知道你的字符串的编码吗? – 2011-01-21 19:08:46

+0

实际上并不完全确定 – 2011-01-21 19:11:46

回答

2

不知何故取消字符(0x18)进入你的字符串。您可以简单地用正则表达式替换它。

var mystring='{"invis":"their brains process differently"}'; 
mystring = mystring.replace(/\x18/g, ""); 
console.log("cool" + mystring); 
console.log(JSON.parse(mystring));