Javascript 在不同浏览器中字符串化对象

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) {

我正在使用它来更改JavaScript中将对象转换为字符串的方式。我想将地理位置对象转换为字符串

下面的例子给出了在Chrome中的正确结果,但在Firefox中没有。这是一本书

插件:

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>