Javascript 无法使用JSON.parse从textarea元素分析有效的JSON

Javascript 无法使用JSON.parse从textarea元素分析有效的JSON,javascript,json,forms,parsing,textarea,Javascript,Json,Forms,Parsing,Textarea,,而类似的方法也没有帮助 下面的JSON是有效的 但是,调用JSON.parse会抛出一个错误 如何从textarea元素解析有效的JSON JSfiddle: let text=document.getElementById(“testBox”).value; 让jsonObject=JSON.parse(文本) { “名称”:“Foobar”, “最喜欢的宠物”:[“水豚”、“蜥蜴”], “最喜欢的水果”:[“鳄梨”], “地址”:{ “城市”:“FairyVille”, “街道”:“主

,而类似的方法也没有帮助

下面的JSON是有效的

但是,调用
JSON.parse
会抛出一个错误

如何从textarea元素解析有效的JSON

JSfiddle:

let text=document.getElementById(“testBox”).value;
让jsonObject=JSON.parse(文本)

{
“名称”:“Foobar”,
“最喜欢的宠物”:[“水豚”、“蜥蜴”],
“最喜欢的水果”:[“鳄梨”],
“地址”:{
“城市”:“FairyVille”,
“街道”:“主街42号”
  }
}

这是因为jQuery使用非中断空格
nbsp
或charcode
\xA0
不是正常空格。你需要更换它

let text=$('#testBox').val();
让jsonObject;
试一试{
jsonObject=JSON.parse(文本);
}捕获(ex){
日志(“错误:”,例如消息)
}
text=text.replace(/\xA0/g,“”);//或\s,但也将替换换行符
jsonObject=JSON.parse(文本);
log(“名称:”,jsonObject.name)

{
“名称”:“Foobar”,
“最喜欢的宠物”:[“水豚”、“蜥蜴”],
“最喜欢的水果”:[“鳄梨”],
“地址”:{
“城市”:“FairyVille”,
“街道”:“主街42号”
  }
}

您的一些空白字符出现问题。您建议采用什么解决方案?用户像这样上传文本,所以我们需要一些自动机制来清除文本。只需删除所有前导/尾随空格?您可以
$('#testBox').val()。替换(/[^!-~]/g')
可以有效地删除字符范围33-126之外的所有字符,但实际上我不会清除它,如果解析失败,我只会向用户返回一个错误。因为可能存在一个合法的解析错误,您将不得不处理该错误。