Javascript 在不同浏览器中字符串化对象
我正在使用它来更改JavaScript中将对象转换为字符串的方式。我想将地理位置对象转换为字符串 下面的例子给出了在Chrome中的正确结果,但在Firefox中没有。这是一本书 插件:Javascript 在不同浏览器中字符串化对象,javascript,json,Javascript,Json,我正在使用它来更改JavaScript中将对象转换为字符串的方式。我想将地理位置对象转换为字符串 下面的例子给出了在Chrome中的正确结果,但在Firefox中没有。这是一本书 插件: jQuery.extend({ stringify : function stringify(obj) { alert('Hiii'); var t = typeof (obj); if (t != "object" || obj === null) {
jQuery.extend({
stringify : function stringify(obj) {
alert('Hiii');
var t = typeof (obj);
if (t != "object" || obj === null) {
// simple data type
if (t == "string")
obj = '"' + obj + '"';
return String(obj);
} else {
// recurse array or object
var n, v, json = [], arr = (obj && obj.constructor == Array);
for (n in obj) {
v = obj[n];
t = typeof(v);
if (obj.hasOwnProperty(n)) {
if (t == "string")
v = '"' + v + '"';
else if (t == "object" && v !== null)
v = jQuery.stringify(v);
json.push((arr ? "" : '"' + n + '":') + String(v));
}
}
return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
}
}
});
代码
$(函数(){
函数getObject(){
if(导航器.地理位置)
{
navigator.geolocation.getCurrentPosition(函数(位置){
警戒(位置);
警报(jQuery.stringify(position));
},函数(错误)
{
警报(“发生错误。错误代码:”+错误。代码);
});
}
}
$('#getObj')。在('click',function()上{
getObject();
});
});
获取位置对象
告诉大家为什么要取消投票非常重要,因为我检查了堆栈溢出
上的不同问题,并与他们进行了比较,但在我的情况下,所有问题都有相同的答案。您使用此定制函数而不是JSON.stringify
?还有,你所说的“但Firefox中的同一个例子不起作用”到底是什么意思。它怎么不起作用?发生了什么,你期望发生什么?在Firefox中,它显示我想在字符串中更改的空字符串,并将对象存储在本地存储中
我还尝试了该函数JSON。在Firefox中,stringify
的结果是{}
和在Chrome{“timestamp”:“121”…//一个完整的字符串文本
@felixklings@FelixKling建议,为什么不使用“JSON.stringfy”将您的对象转换为字符串,它在任何地方都可以正常工作,并且要将JSON字符串转换回对象,您可以轻松地使用“JSON.parse”。抱歉@FelixKling,似乎我们都在同时编辑。
<script>
$(function(){
function getObject(){
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(function(position) {
alert(position);
alert(jQuery.stringify(position));
}, function(error)
{
alert("Error occurred. Error code: " + error.code);
});
}
}
$('#getObj').on('click',function(){
getObject();
});
});
</script>
<div>
<a data-role="button" id="getObj">Get Position Object</a>
</div>