javascript/jquery - JSON.stringify无法在Windows Phone 7中运行

mhe*_*ers 1 javascript cookies jquery json stringify

我正在测试Windows Phone 7上的移动网站,而JSON.stringify功能无效.有谁知道为什么会发生这种情况或者我能做些什么来解决这个问题?我正在对数组进行字符串化以将其存储在cookie中.这是我的代码:

vString = JSON.stringify(vehicleArray);
alert ('this alert will never execute');
$j.cookie('vehicleCookie', vString, { expires: 7, path: '/' }); //Store all the vehicles again to the cookie
Run Code Online (Sandbox Code Playgroud)

超出vString行的任何代码都不再执行.

如果记录,vehicleArray看起来像这样:

["145", "273", "241", "553", "490", "380"]
Run Code Online (Sandbox Code Playgroud)

我无法提供有关什么工作或不工作的大量信息,因为Windows phone没有我所知道的任何类型的调试器,并且代码在ie7中工作正常.

Ble*_*der 5

您可以扩展jQuery以赋予它一个jQuery.stringify()功能.

它缩小了节约空间:

jQuery.extend({stringify:function(a){var c=typeof a;if(c!="object"||a===null)return c=="string"&&(a='"'+a+'"'),String(a);else{var d,b,f=[],e=a&&a.constructor==Array;for(d in a)b=a[d],c=typeof b,a.hasOwnProperty(d)&&(c=="string"?b='"'+b+'"':c=="object"&&b!==null&&(b=jQuery.stringify(b)),f.push((e?"":'"'+d+'":')+String(b)));return(e?"[":"{")+String(f)+(e?"]":"}")}}});
Run Code Online (Sandbox Code Playgroud)

因此,只需将此文件包含在文件的顶部,然后将有问题的行更改为:

vString = jQuery.stringify(vehicleArray);
Run Code Online (Sandbox Code Playgroud)