JSON.parse不适用于旧版移动浏览器

时间:2013-08-28 20:34:05

标签: php javascript android html json

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

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

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

var str = JSON.parse(A);适用于所有桌面浏览器,移动游猎,移动铬等。

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

JSON.parse在浏览器中工作,而不是我的JSON字符串A.这个浏览器上的json解析器是否有错误?

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

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

2 个答案:

答案 0 :(得分:1)

较旧的JSON.parse只会解析一个对象....

尝试下面的环绕......

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

如果不起作用......你可以尝试

function getObj(json){
  return (new Function(" return (" + json + "); "))();
}

var value = getObj('[{"key1":"val1",...,"keyn":"valn"},{...},...,{...}]');

答案 1 :(得分:0)

尝试:

var myJSON = eval(yourJSONString);