如何将javascript对象转换为json而不使用" JSON.stringify"方法?

时间:2014-03-25 08:46:27

标签: javascript json stringify

有没有办法将javascript对象转换为JSON。

我无法使用

JSON.stringify(<obj>)

因为以下链接中的JSON对象中没有stringify方法。

Link

示例:

var obj = {'x':1,'y':2}

现在如果我要跑

console.log(JSON.stringify(obj));

然后我收到了这个错误。

  

错误:TypeError:对象#没有方法&#39; stringify&#39;

4 个答案:

答案 0 :(得分:2)

好吧,网站会用自己的./ / p>覆盖实际的JSON对象

> JSON
> Object {toStr: function, quote: function}

尝试使用JSON.toStr(object)

答案 1 :(得分:1)

stringify方法取决于您的浏览器。

因此,如果您找不到JSON.stringify(),可能您使用的浏览器与JSON API不兼容,您可以将此库包含在其中:

json2.js

答案 2 :(得分:1)

似乎某些代码/库已覆盖全局JSON对象。 JSON.toStr很好但是如果你想要原来的JSON对象,你总是可以创建一个不可见的框架并使用它的全局对象

OriginalJSON = (function() {
  var e = document.createElement('frame');
  e.style.display = 'none';
  var f = document.body.appendChild(e);
  return f.contentWindow.JSON;
})()

OriginalJSON.stringify({a: 1})

这是一种适用于因某种原因被覆盖的所有全局对象的技术。作为替代方案,您始终只能复制stringify方法

JSON.stringify = (function() {
  var e = document.createElement('frame');
  e.style.display = 'none';
  var f = document.body.appendChild(e);
  return f.contentWindow.JSON.stringify;
})()

// Now JSON.stringify is back
JSON.stringify({a: 1})

答案 3 :(得分:0)

考虑使用外部库,例如JSON 3是一个不错的选择。