簡體   English   中英

如何在不使用“JSON.stringify”方法的情況下將javascript對象轉換為json?

[英]How to convert javascript object into json without using “JSON.stringify” method?

有沒有辦法將javascript對象轉換為JSON。

我不能用

JSON.stringify(<obj>)

因為以下鏈接中的JSON對象中沒有stringify方法。

鏈接

例:

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

現在,如果我會跑

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

然后我收到了這個錯誤。

錯誤:TypeError:對象#沒有方法'stringify'

好吧,該網站用自己的方式覆蓋了實際的JSON對象。

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

嘗試使用JSON.toStr(object)

stringify方法取決於您的瀏覽器。

因此,如果您找不到JSON.stringify() ,可能您使用的瀏覽器與JSON API不兼容,您可以包含此庫以實現它:

json2.js

似乎某些代碼/庫已覆蓋全局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})

考慮使用外部庫,例如JSON 3是一個不錯的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM