保存JSONObject

问题描述:

这是什么样的对象? enter image description here 我正在尝试制作模拟数据以测试应用程序,这就是我的假数据之一。 如何保存这个模拟数据?保存JSONObject

我只能想到使用JSON.stringify函数并将结果复制保存为字符串。显然,在我这样做后,我将无法访问原始对象的属性。

enter image description here

有没有我可以写这篇文章的JSONObject到一个文件中,并已获得其属性后的任何方式?

JSON.stringify()返回一个字符串。要创建一个对象,您可以再次访问属性,您需要通过JSON.parse()传递该字符串。

还值得注意的是,如果你保存的对象有任何功能,它们将会保存而不是

+0

这完全是我想要做的。我试图保存一个有函数的对象,并且我想稍后使用这些函数..这是不可行的吗? – Yes

+0

如果对象中有函数,那么希望它有一个可以调用的构造函数来创建更多实例。检查https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor – solarshado

在你的代码obj是一个JavaScript对象

您可以使用BLOB(https://developer.mozilla.org/en-US/docs/Web/API/Blob)和HTML5下载API做了要求:

var json = JSON.stringify(obj); 
var blob = new Blob([json], {type: "application/json"}); 
var url = URL.createObjectURL(blob); 

var a = document.createElement('a'); 
a.download = "mydata.json"; 
a.href  = url; 
a.textContent = "Download mydata.json"; 

以后,您可以加载数据和访问它的属性使用和XMLHttpRequest GET请求为:

function loadJSON(callback) { 

    var getobj = new XMLHttpRequest(); 
    getobj.overrideMimeType("application/json"); 
    getobj.open('GET', 'mydata.json', true); // Replace 'mydata' with the path to your file 
    getobj.onreadystatechange = function() { 
      if (getobj.readyState == 4 && getobj.status == "200") { 
       // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode 
      callback(getobj.responseText); 
      } 
    }; 
    getobj.send(null); 
} 

loadJSON(function(response) { 
    // Parse JSON string into object 
    var savedData = JSON.parse(response); 
}); 
+0

我很困惑 – Yes

+0

困惑什么? –

+0

一切......我根本不明白它 – Yes

使用本地存储也许。

localStorage.setItem("MYMockData", JSON.stringify(fakeData)); 

    var fakeDataRetrived = JSON.parse(localStorage.getItem("MYMockData"));