简体   繁体   English

JSON.parse在旧的移动浏览器上不起作用

[英]JSON.parse not working on older mobile browsers

I have a JSON string A. A is in the format: 我有一个JSON字符串A。A的格式为:

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

A is created on a php server using json_encode(Array). A是使用json_encode(Array)在php服务器上创建的。

var str = JSON.parse(A); var str = JSON.parse(A); works in all desktop browsers, mobile safari, mobile chrome etc.. 适用于所有桌面浏览器,移动浏览器,移动chrome等。

var str = JSON.parse(A); var str = JSON.parse(A); throws an exception('exception: cannot parse string') in Android 2.2 default browser and black berry devices' browers. 在Android 2.2默认浏览器和Blackberry设备的浏览器中引发异常(“ exception:无法解析字符串”)。

JSON.parse works in the browser just not with my JSON string A. Is there a bug in the json parser on this browser? JSON.parse只能在浏览器中使用,而不能与我的JSON字符串A一起使用。此浏览器上的json解析器中是否有错误?

edit. 编辑。 If I put A into a textArea and copy and paste the string directly into the javascript code.. JSON.parse('[{"key1":"val1",...,"keyn":"valn"},{...},...,{...}]') works. 如果我将A放入textArea中,然后将字符串直接复制并粘贴到javascript代码中。。JSON.parse('[{“ key1”:“ val1”,...,“ keyn”:“ valn”},{。 ..},...,{...}]')的作品。

But, this doesn't work -> JSON.parse($('div').html(A).text()); 但是,这不起作用-> JSON.parse($('div')。html(A).text());

the older JSON.parse only will parse a object.... 较旧的JSON.parse仅将解析对象。

try surround like below... 尝试如下所示的环绕声...

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

if not work... you can try 如果不行...您可以尝试

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

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

try: 尝试:

var myJSON = eval( yourJSONString ); var myJSON = eval(yourJSONString);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM