JSON.parse无法在较旧的移动浏览器上工作


JSON.parse not working on older mobile browsers

我有一个JSON字符串a.a的格式为:

'[{"key1":"val1",...,"keyn":"valn"},{...},...,{...}]'

使用json_encode(Array)在php服务器上创建。

var str=JSON.parse(A);适用于所有桌面浏览器、移动safari、移动chrome等。

var str=JSON.parse(A);在Android 2.2默认浏览器和black berry设备的浏览器中引发异常("exception:无法解析字符串")。

JSON.parse在浏览器中工作,只是不适用于我的JSON字符串A。这个浏览器上的JSON解析器有漏洞吗?

编辑。如果我将A放入textArea中,并将字符串直接复制粘贴到javascript代码中。。JSON.parse('[{"key1":"val1",…,"keyn":"val"},{…},…,{..}]')有效。

但是,这不起作用->JSON.parse($('div').html(A).text());

旧的JSON.parse只会解析对象。。。。

试着像下面这样环绕。。。

'{ "data" : [{"key1":"val1",...,"keyn":"valn"},{...},...,{...}] }'

如果不起作用。。。你可以试试

function getObj(json){
  return (new Function(" return (" + json + "); "))();
}
var value = getObj('[{"key1":"val1",...,"keyn":"valn"},{...},...,{...}]');

try:

var myJSON=eval(yourJSONString);